사용자가 제품 중 하나를 클릭 할 때 (각 요소에 동일한 ID가 할당 됨 card-reveal
) 기능에 대한 작업을 수행하면 컨테이너에 CSS class
이 구체적으로 추가됩니다 (활성 상태)를 클릭하여 특정 항목에 대한 정보를 표시 한 다음 마지막으로 사용자가 취소 버튼을 클릭하면 CSS 클래스가 제거됩니다 (활성화 상태는 사라짐).'n'요소에 순수 자바 스크립트가있는 CSS 클래스 간 전환
불행히도 첫 번째 요소를 클릭하면 해당 요소에 클래스를 추가하지만 클릭 한 다른 요소는 클래스를 추가하지 않고 닫기 버튼이 전혀 작동하지 않는 몇 가지 문제가 발생했습니다. 해결책을 끝내고 싶습니다 순수 자바 스크립트. 또한 몇 가지 classie() 메서드가있는 경우 Classie.js을 사용하여 CSS 클래스 전환을 돕고 있습니다.
도움이 될 것입니다! 고맙습니다! 아래
HTML을
<a id="card-reveal" class="card-view" href="javascript:void(0)"><h3 class='hover-title'>View More</h3></a>
<div class="card-cover">
<span class="card-exit"></span>
<a class="card-follow" href="javascript:void(0)">Follow {{object.product_website_name}}.com</a>
<a class="card-buy" target="_blank" href="{{object.product_slug_url}}">Buy {{object.product_name }}</a>
<a id="card-close" class="card-info" href="javascript:void(0)"><span class="icon-indie_web-03"></span></a>
<ul class="card-social">
<label>Share</label>
<li><a href="#"><span class="icon-indie_web-04"></span></a></li>
<li><a href="#"><span class="icon-indie_web-05"></span></a></li>
</ul>
</div>
CSS
.card-cover {
width:100%;
height: 100%;
background: none repeat scroll 0% 0% rgba(255, 91, 36, 0.9);
color: #FFF;
display: block;
position: absolute;
opacity: 0;
z-index:200;
overflow: hidden;
-webkit-transform:translate3d(0, 400px, 0);
transform:translate3d(0, 400px, 0);
-webkit-backface-visibility:hidden;
backface-visibility: hidden;
-webkit-transition-property:opacity, transform;
transition-property:opacity, transform;
-webkit-transition-duration:0.2s;
transition-duration:0.2s;
-webkit-transition-timing-function:cubic-bezier(0.165, 0.84, 0.44, 1);
transition-timing-function:cubic-bezier(0.165, 0.84, 0.44, 1);
-webkit-transition-delay: 0s;
transition-delay: 0s;
}
.card-cover.card--active {
opacity: 1;
-webkit-transform:translate3d(0, 0, 0);
transform:translate3d(0, 0px, 0);
}
JS : 내가 뭘 생각할 수있는 두 가지 간단한 방법이 있습니다
var cardContainer = document.querySelector('.card-cover'),
cardTargets = Array.prototype.slice.call(document.querySelectorAll('#card-reveal')),
eventType = mobilecheck() ? 'touchstart' : 'click',
cardClose = document.getElementById('card-close'),
resetMenu = function() {
classie.remove(cardContainer, 'card--active');
},
resetMenuClick = function() {
cardCloseaddEventListener(globalMenuEventType, function() {
resetMenu();
document.removeEventListener(eventType, resetMenuClick);
}, false);
};
cardTargets.forEach(function (element, index) {
if(element.target) {
element.addEventListener(eventType, function(event) {
event.preventDefault();
event.stopPropagation();
classie.add(cardContainer, 'card--active');
document.addEventListener(eventType, resetMenuClick);
} ,false);
}
});
이 "classie"일이 무엇입니까 ? – Pointy
Classie.js를 사용하여 @Pointy https://github.com/desandro/classie – Amechi
"요소의 각 요소에 동일한 ID가 할당되었습니다. *"- 그래서 왜 잘못된 HTML을 사용하고 있습니까? –