【问题标题】:Revert flipping a DIV after clicking another one单击另一个 DIV 后恢复翻转 DIV
【发布时间】: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


【解决方案1】:

尝试在点击时删除卡片上的“翻转”类。

      function clickListener(card) {
           card.addEventListener( "click", function() {
               $('.card.effect__click').removeClass('flipped');
               var c = this.classList;
               c.contains("flipped") === true ? c.remove("flipped") : c.add("flipped");
           });
      }

【讨论】:

  • 耶!有效。不过,我不得不将您的 $ 更改为 jQuery。但感谢您的快速修复和响应。 :D
猜你喜欢
  • 1970-01-01
  • 2016-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多