用 rotateY 配合 @keyframes 实现卡片 3D 翻转,需设外层 perspective、翻转容器 transform-style: preserve-3d,正反面均 backface-visibility: hidden,正面 rotateY(0),背面 rotateY(180deg),动画控制 Y 轴旋转,hover 或 JS 切换触发,注意移动端适配与闪动优化。

用 rotateY 配合 CSS 动画(@keyframes)实现卡片 3D 翻转,核心是控制容器的 transform-style: preserve-3d 和子元素的 backface-visibility: hidden,再用 rotateY(180deg) 切换正反面。
卡片需包裹两个子元素(正面和背面),都设为绝对定位、尺寸一致,叠在一起:
position: relative 和 perspective: 1000px(决定 3D 深度感).card-inner)设 transform-style: preserve-3d
.front)默认 rotateY(0),背面(.back)初始 rotateY(180deg)
backface-visibility: hidden,避免翻转时看到背面内容反向显示定义一个从 0° 到 180° 的 Y 轴旋转动画:
@keyframes flip {
from { transform: rotateY(0deg); }
to { transform: rotateY(180deg); }
}把动画应用到 .card-inner 上,设置 duration、timing-function(如 cubic-bezier(0.4, 2.3, 0.2, 1) 可让翻转更自然),并注意 transform-origin: center 保证绕中心转。
立即学习“前端免费学习笔记(深入)”;
最常用的是 hover 翻转:
.card)加 :hover .card-inner { animation: flip 0.6s ease-in-out forwards; }
.is-flipped),CSS 中写:.card.is-flipped .card-inner { transform: rotateY(180deg); }
transition: transform 0.6s ease-in-out 替代动画,更轻量且支持反向过渡常见问题和应对:
-webkit-backface-visibility: hidden 兼容.back 内部再加一层 rotateY(180deg) 或直接写 transform: rotateY(180deg) 校正touchstart + JS 切类,或用 @media (hover: hover) 区分设备.card 上加 box-shadow,配合 perspective 值调整立体感强弱基本上就这些。不复杂但容易忽略 backface-visibility 和 transform-style,补上就能稳稳翻起来。
以上就是css卡片想做3D翻转交互怎么实现_通过rotateY与keyframes制作翻页动效的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号