如何制作CSS书页翻转的3D动画_利用transform-style与rotateY

雨强吖_2085

雨强吖_2085

2026-06-10

736人浏览

原创

transform-style: preserve-3d 是翻页动画的必要前提,否则子元素被拍平至2d平面导致 rotatey() 失效;需设于直接包裹内容的容器,配合 backface-visibility: visible 和正确 transform-origin 才能实现真实3d翻页效果。

如何制作css书页翻转的3d动画_利用transform-style与rotatey

为什么 transform-style: preserve-3d 是翻页动画的必要前提

不加这句,所有子元素都会被“拍平”到父容器的 2D 平面,rotateY() 看起来像在原地缩放或错位,根本不是翻转。浏览器默认是 transform-style: flat,相当于主动关闭了 3D 上下文。

实操建议:

  • 必须设在直接包裹翻页内容的容器上(比如 .book-page 或 .page-wrapper),而不是最外层 body 或 .book
  • 该容器不能有 overflow: hidden,否则旋转后超出的部分会被裁掉——翻页时背面内容常会短暂探出边界
  • 如果父级用了 perspective,注意它和 transform-style 是配合关系:前者定义观察距离,后者决定是否启用 3D 渲染管线

rotateY(180deg) 翻页时背面内容看不见?检查这几个地方

常见现象是翻到一半,背面突然消失、变黑,或只显示一半。这不是动画没写完,而是 3D 空间里的“面朝向”问题。

关键点:

  • 背面默认不可见(backface-visibility: hidden 是默认值),需显式设为 visible 才能看见翻转后的背面
  • 背面元素(如 .page-back)必须有明确的 transform: rotateY(180deg) 初始化,否则它会以正面姿态被“甩”过去,视觉错乱
  • 不要只给正面加 rotateY,而让背面静止——它们必须共用同一套 3D 坐标系,且初始 rotateY 值互为 0 和 180

用 transform: rotateY() 做平滑翻页,这些参数影响手感

单纯写 rotateY(180deg) 只能完成单次翻转,真实书页需要缓动、分阶段、甚至模拟纸张弹性。核心不在角度本身,而在如何驱动它。

CSS婚礼策划服务机构宣传网站模板
CSS婚礼策划服务机构宣传网站模板

CSS婚礼策划服务机构宣传网站模板是一款适合提供婚礼策划和婚庆服务机构宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

下载

实操建议:

  • 动画时间建议 400–600ms,太短像抽搐,太长像卡顿;用 ease-out 比 ease-in-out 更接近真实纸张减速感
  • 别直接对 .page-front 和 .page-back 分别做 rotateY 动画——应统一控制它们的父容器,靠父子层级 + preserve-3d 自动联动
  • 想实现“掀角”效果?得用 transform-origin 控制旋转轴心,默认是居中(50% 50%),翻右页就设成 right center,左页则用 left center

移动端翻页卡顿或失真?先关掉这几个隐形开关

iOS Safari 和部分安卓 WebView 对 3D transform 的硬件加速策略很敏感,不是写了 preserve-3d 就一定流畅。

容易被忽略的兼容点:

  • will-change: transform 要加在翻页容器上,但别滥用——只在用户触发翻页前动态添加,翻完立刻移除,否则长期占用 GPU 内存
  • 避免在翻页元素上同时使用 filter(如 blur())或 opacity 动画,它们会强制降级到软件渲染,3D 效果直接崩
  • 某些安卓机型不支持 transform-style: preserve-3d 在 position: fixed 元素上生效——把翻页容器改成 position: absolute 或脱离文档流更稳妥

翻页动画真正难的不是怎么转,而是怎么让正反两面在空间里始终“粘连”又各自独立;一旦 transform-style 设错位置,或 backface-visibility 忘设,整个 3D 关系就断了,再调 rotateY 参数也没用。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

4416

6

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

977

5

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.28

1838

6

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

2023.08.01

3466

7

css字体颜色
css字体颜色

CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

2023.08.10

6925

11

什么是css
什么是css

CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

2023.08.10

5891

7

css三角形怎么写
css三角形怎么写

CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

2023.08.21

1997

9

css设置文字颜色
css设置文字颜色

CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

2023.08.22

2791

5

css禁止点击事件
css禁止点击事件

实现css禁止点击事件的方法有使用CSS的pointer-events属性和使用JavaScript禁用点击事件。本专题为大家提供点击事件相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2433

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 5.9万人学习

CSS教程
CSS教程

共754课时 | 96.6万人学习