首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery Flip Card故障排除

Jquery Flip Card故障排除
EN

Stack Overflow用户
提问于 2020-03-27 23:22:05
回答 1查看 60关注 0票数 0

我正在尝试创建多个翻转卡片与超文本标记语言和CSS,翻转使用jQuery。我遇到的问题是,目前我只能翻转第一张牌。

任何使jQuery更加全球化并能够点击/翻转每张卡片的建议都将不胜感激。

下面是我一直使用的例子:https://codepen.io/marcwilk/pen/JjdwKZR

HTML:

代码语言:javascript
复制
<div class="scene scene--card">
  <div class="card">
    <div class="card__face card__face--front">front</div>
    <div class="card__face card__face--back">back</div>
  </div>
</div>
<div class="scene scene--card">
  <div class="card">
    <div class="card__face card__face--front">front</div>
    <div class="card__face card__face--back">back</div>
  </div>
</div>
<p>Click card to flip.</p>

CSS:

代码语言:javascript
复制
body { font-family: sans-serif; }

.scene {
  width: 200px;
  height: 260px;
  border: 1px solid #CCC;
  margin: 40px 0;
  perspective: 600px;
}

.card {
  position: relative;
  width: 100%;
  height: 100%;
  cursor: pointer;
  transform-style: preserve-3d;
  transform-origin: center right;
  transition: transform 1s;
}

.card.is-flipped {
  transform: translateX(-100%) rotateY(-180deg);
}

.card__face {
  position: absolute;
  width: 100%;
  height: 100%;
  line-height: 260px;
  color: white;
  text-align: center;
  font-weight: bold;
  font-size: 40px;
  backface-visibility: hidden;
}

.card__face--front {
  background: red;
}

.card__face--back {
  background: blue;
  transform: rotateY(180deg);
}

JS:

代码语言:javascript
复制
var card = document.querySelector('.card');
card.addEventListener( 'click', function() {
  card.classList.toggle('is-flipped');
});

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-27 23:30:56

首先,您的代码是纯JavaScript的,而不是使用jQuery。

其次,问题是您使用document.querySelector('.card')来选择第一个.card元素。

您的解决方案是使用document.querySelectorAll('.card');并循环通过它来添加单击事件侦听器:

代码语言:javascript
复制
var cards = document.querySelectorAll('.card');
cards.forEach(card => {
  card.addEventListener('click', function() {
    card.classList.toggle('is-flipped');
  })
})
代码语言:javascript
复制
body {
  font-family: sans-serif;
}

.scene {
  width: 200px;
  height: 260px;
  border: 1px solid #CCC;
  margin: 40px 0;
  perspective: 600px;
}

.card {
  position: relative;
  width: 100%;
  height: 100%;
  cursor: pointer;
  transform-style: preserve-3d;
  transform-origin: center right;
  transition: transform 1s;
}

.card.is-flipped {
  transform: translateX(-100%) rotateY(-180deg);
}

.card__face {
  position: absolute;
  width: 100%;
  height: 100%;
  line-height: 260px;
  color: white;
  text-align: center;
  font-weight: bold;
  font-size: 40px;
  backface-visibility: hidden;
}

.card__face--front {
  background: red;
}

.card__face--back {
  background: blue;
  transform: rotateY(180deg);
}
代码语言:javascript
复制
<div class="scene scene--card">
  <div class="card">
    <div class="card__face card__face--front">front</div>
    <div class="card__face card__face--back">back</div>
  </div>
</div>
<div class="scene scene--card">
  <div class="card">
    <div class="card__face card__face--front">front</div>
    <div class="card__face card__face--back">back</div>
  </div>
</div>
<p>Click card to flip.</p>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60888979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档