javascript - 当前所选类中的目标类

标签 javascript jquery css

我正在研究 CSS3 翻转卡片布局。 CodePen 中有很多示例,但它们包含不必要的困惑。我已经设法获得了“基本”版本,但我无法针对特定的卡片。我想添加 id,但在 JS 中选择它们需要一些字符串操作,我认为这太过分了,我缺少一种更简单的方法。

这一行是问题所在: $('.card_container>.card').toggleClass('flipped');我想说“在我正在单击的当前 .card 下选择 .card_container”。

代码笔:https://codepen.io/reiallenramos/pen/bYWKyv

$('.card_container').on('click', function () {
  $('.card_container>.card').toggleClass('flipped'); #help me change this line
});

--

body, html {
  margin: 0;
  background-color: tomato;
  font-size: 2em;
  font-family: sans-serif;
}

.wrapper{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: minmax(100px, auto);
  grid-gap: 2px;
  margin: 10px;
  height: 100vh;
  align-items: center;
}

.card_container {
  cursor: pointer;
  position: relative;
  width: 300px;
  height: 200px;
}

.card {
  transform-style: preserve-3d;
  transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  padding: 0px;
  position: absolute;
  height: 100%;
  width: 100%;
  div {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    backface-visibility: hidden;
    background-color: #eee;
    height: 100%;
    width: 100%;
  }

  .back {
    transform: rotateY(180deg);
  }

  &.flipped{
    transform: rotateY(180deg);
  }
}

--

<div class="wrapper">
  <div class="card_container">
    <div class="card">
      <div class="front">flip</div>
      <div class="back">one</div>
    </div>
  </div>
  <div class="card_container">
    <div class="card">
      <div class="front">flip</div>
      <div class="back">two</div>
    </div>
  </div>
  <div class="card_container">
    <div class="card">
      <div class="front">flip</div>
      <div class="back">three</div>
    </div>
  </div>
  <div class="card_container">
    <div class="card">
      <div class="front">flip</div>
      <div class="back">four</div>
    </div>
  </div>
</div>

最佳答案

将此更改添加到您的 jQuery 代码中,每次当您单击 .card 时,jQuery this 关键字会在该单击的元素上切换类,而不是在所有 上切换类.card.

$('.card_container > .card').on('click', function () {
  $(this).toggleClass('flipped');
});

$('.card_container > .card').on('click', function () {
  $(this).toggleClass('flipped');
});
body, html {
  margin: 0;
  background-color: tomato;
  font-size: 2em;
  font-family: sans-serif;
}

.wrapper{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: minmax(100px, auto);
  grid-gap: 2px;
  margin: 10px;
  height: 100vh;
  align-items: center;
}

.card_container {
  cursor: pointer;
  position: relative;
  width: 300px;
  height: 200px;
}

.card {
  transform-style: preserve-3d;
  transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  padding: 0px;
  position: absolute;
  height: 100%;
  width: 100%;
  div {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    backface-visibility: hidden;
    background-color: #eee;
    height: 100%;
    width: 100%;
  }
  
  .back {
    transform: rotateY(180deg);
  }
    
  &.flipped{
    transform: rotateY(180deg);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
  <div class="card_container">
    <div class="card">
      <div class="front">flip</div>
      <div class="back">one</div>
    </div>
  </div>
  <div class="card_container">
    <div class="card">
      <div class="front">flip</div>
      <div class="back">two</div>
    </div>
  </div>
  <div class="card_container">
    <div class="card">
      <div class="front">flip</div>
      <div class="back">three</div>
    </div>
  </div>
  <div class="card_container">
    <div class="card">
      <div class="front">flip</div>
      <div class="back">four</div>
    </div>
  </div>
</div>

关于javascript - 当前所选类中的目标类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47256610/

相关文章:

php - 覆盖 <tr> onclick,在单个单元格中切换模式

html - <small> 可以位于 <p> 标签内吗?

html - 如何在 css 和 html 中将图像的阴影放在其下方的另一个图像上?

javascript - AngularJS 将 css 转换为指令

javascript - 动态表格单元格的中心页面

javascript - 事件处理程序相互冲突

css - :hover{} precedence in gecko

javascript - 我可以使用 Ajax.Responder 向 PrototypeJS Ajax 请求添加参数吗?

jQuery - 将具有颜色属性的类添加到链接

javascript - 如何在 AJAX foreach JSON 返回调用中引入延迟和淡入