我正在try 使用vanilla CSS和Js创建一个纸牌翻转,使用&. Select 器来瞄准一个还包括父元素作为复合 Select 器的元素.

这里有一个例子,使用手写笔. https://codepen.io/colebemis/pen/WNKdNj?editors=1111

我试图简化这里仅使用普通CSS JavaScript的示例. https://codepen.io/dickkirkland/pen/JjVwJdB

在我try 翻转卡片时,2个<div>并不那么无缝,并且似乎独立翻转,而第一个例子中,卡片在视觉上看起来就像一张具有正面和背面的卡片.

我的例子中的JavaScript是否触发太快,或者是否必须包含&.flipped的嵌套,以便动画将被视为1张牌?

我似乎无法使用,或者Codepen编辑不允许我使用直接.使用简单的CSS方法.

有其他方法来实现此动画吗? 如有任何建议或见解,我们将不胜感激.

HTML是

  <div class="card">
    <div class="front">See More Stats</div>
    <div class="back">-- Member Stats --</div>
  </div>
</div>

与CSS

  height: 100%;
  margin: 0;
}

body {
  background: #00A5F7;
  display: flex; 
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.container {
  width: 300px;
  height: 400px;
  position: relative;  
  perspective: 800px;
  border-radius: 4px; 
}

.card {
  width: 100%;
  height: 100%;
  position: absolute;
  transform-style: preserve-3d;
  transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.15);
  cursor: pointer;
}
  

div {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  border-radius: 6px;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  font: 16px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-smoothing: antialiased;
  color: #47525D;
}

/*  .back {
   transform: rotateY(180deg);

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

} */

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

和Js

//     $('.card').toggleClass('flipped');
//   });

let container = document.querySelector('.container');
let card = document.querySelector('.card');
  
 container.addEventListener('click', function () {
    card.classList.toggle('flipped');
 });

除了上面的链接之外,您还可以看到被 comments 掉的CSS &..我不想使用jQuery,并且也在J中注释了这一点.

推荐答案

在纯css代码中没有考虑到空白.实际的后编译css应该像这样

.card div {...}
.card .back {...}
.card.flipped {...}

因为div.back&.flipped嵌套在.card规则中.

演示https://codepen.io/Gabriele-Petrioli/pen/poBGdwR


如果您使用支持CSS nesting的现代浏览器,您应该将css写成

.card{ 
 ...

 .div {...}
 .back {...}
 &.flipped {...}
}

演示时间:https://codepen.io/Gabriele-Petrioli/pen/vYMbWxP

Javascript相关问答推荐

事件错误:类型错误:无法读取未定义的属性(读取stopPropagation)

更新Reduxstore 中的状态变量,导致整个应用程序出现不必要的重新渲染

为什么JavaScript双边字符串文字插值不是二次的?

Vue:ref不会创建react 性属性

InDesign—创建一个独立的窗口,在文档中进行更正时保持打开状态

为什么我的列表直到下一次提交才更新值/onChange

如何用拉威尔惯性Vue依赖下拉?

无法使用单击按钮时的useState将数据从一个页面传递到另一个页面

以Angular 实现ng-Circle-Progress时出错:模块没有导出的成员

第二次更新文本输入字段后,Reaction崩溃

Puppeteer上每页的useProxy返回的不是函数/构造函数

使用NextJS+MongoDB+Prisma ORM获取无效请求正文,无法发布错误

当标题被点击时,如何使内容出现在另一个div上?

如何修复使用axios运行TSC index.ts时出现的错误?

有没有办法通过使用不同数组中的值进行排序

用Reaction-RT-Chart创建实时条形图

为什么我的Navbar.css没有显示在本地主机页面上?

更新文本区域行号

将字体样式应用于material -UI条形图图例

我如何才能让p5.js在不使用实例模式的情况下工作?