首页 >web前端 >css教程 >如何使用纯 CSS 实现平滑的 3D 卡翻转:解决对齐问题

如何使用纯 CSS 实现平滑的 3D 卡翻转:解决对齐问题

Susan Sarandon
Susan Sarandon原创
2024-10-24 02:09:29781浏览

How to Achieve Smooth 3D Card Flipping with Pure CSS: Troubleshooting Snapping Issues

使用纯 CSS 翻转 3D 卡片

问题:

尝试使用 CSS 创建 3D 卡片翻转效果,但卡片在悬停时会卡住,而不是平滑翻转。

尝试的代码:

<code class="css">.card-container {
  // CSS code...
}</code>

解决方案:

要仅使用 CSS 实现完美的 3D 卡片翻转动画,请简化代码并绕 Y 轴旋转卡片。这是一个优化示例:

CSS:

<code class="css">.card {
  position: relative;
  width: 50vh;
  height: 80vh;
  perspective: 500px;
  margin: 10vh auto 50vh;
}

.front,
.back {
  position: absolute;
  width: 100%;
  height: 100%;
  transition: transform 1s;
  backface-visibility: hidden;
  transform-style: preserve-3d;
}

.front {
  background-color: #66ccff;
}

.back {
  background-color: #dd8800;
  transform: rotateY(180deg);
}

.card:hover .front {
  transform: rotateY(180deg);
}

.card:hover .back {
  transform: rotateY(360deg);
}</code>

HTML:

<code class="html"><div class="card">
  <div class="front"><span>Front</span></div>
  <div class="back"><span>Back</span></div>
</div></code>

如何实现作品:

  • 变换风格:preserve-3d;属性确保卡片的元素保留在 3D 空间中。
  • 背面可见性:隐藏;翻转时隐藏卡片的背面。
  • rotateY() 属性绕 Y 轴翻转卡片,创建翻转效果。
  • transition: 变换 1s;在翻转动画过程中引入平滑过渡。

结果:

此代码片段使用纯 CSS 提供无缝 3D 卡片翻转动画。悬停时,卡片会从正面平滑旋转到背面。

以上是如何使用纯 CSS 实现平滑的 3D 卡翻转:解决对齐问题的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn