Flip翻转动画怎么实现正反面无缝衔接?

茂庭 Dev 阅读 8

我在做卡片翻转效果时,正面翻到背面总有闪一下或者错位的问题,明明加了backface-visibility: hidden,但还是不对劲。

这是我的CSS代码:

.card {
  perspective: 1000px;
}
.card-inner {
  position: relative;
  width: 200px;
  height: 200px;
  transform-style: preserve-3d;
  transition: transform 0.6s;
}
.card-inner.flipped {
  transform: rotateY(180deg);
}
.card-face {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
}

正面和背面的div都用了.card-face类,但翻过去的时候背面内容会先闪现再翻,或者位置偏移,到底哪里漏了?

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
司马增梅
问题在于你的背面元素没有预先旋转,导致翻转瞬间浏览器无法正确处理遮挡关系。你需要给背面的div加上 transform: rotateY(180deg),让它一开始就背对观众,这样容器旋转180度时它正好正对观众。

.card-front {
/* 正面保持默认,可加z-index确保在上层 */
z-index: 2;
}

.card-back {
/* 关键修复:背面预先旋转180度 */
transform: rotateY(180deg);
}
点赞
2026-03-04 04:00