【发布时间】:2015-09-10 09:55:28
【问题描述】:
看看这个link。如果您单击产品,它会翻转并显示一些信息。您可以在给定时间翻转所有产品。
我希望能够只拥有一个翻转产品。每次有人点击另一个产品时,我都希望前一个产品恢复到原来的样子。
html:
<div class="card effect__EFFECT">
<div class="card__front">
<span class="card__text">front</span>
</div>
<div class="card__back">
<span class="card__text">back</span>
</div>
</div>
Javascript:
(function() {
var cards = document.querySelectorAll(".card.effect__click");
for ( var i = 0, len = cards.length; i < len; i++ ) {
var card = cards[i];
clickListener( card );
}
function clickListener(card) {
card.addEventListener( "click", function() {
var c = this.classList;
c.contains("flipped") === true ? c.remove("flipped") : c.add("flipped");
});
}
})();
CSS:
.card.effect__click.flipped .card__front {
-webkit-transform: rotateY(-180deg);
transform: rotateY(-180deg);
}
.card.effect__click.flipped .card__back {
-webkit-transform: rotateY(0);
transform: rotateY(0);
}
【问题讨论】:
-
首先从所有卡片中删除翻转类,如果任何卡片包含然后运行您当前的功能。将此事件写在 var C 之前的 clickListener() 函数中。
标签: javascript css rotation flip