
CSS和JavaScript打造逼真的3D翻页效果
本文将演示如何使用CSS和JavaScript创建如上图所示的3D翻页效果,实现多页面流畅翻阅。
CSS样式:
以下CSS代码定义了翻页效果的核心样式:
立即学习“前端免费学习笔记(深入)”;
<code class="css">.book { /* 书本容器 */
transform-style: preserve-3d; /* 保持3D空间 */
}
.page { /* 单页 */
transform-origin: left; /* 变换原点 */
transition: 1s cubic-bezier(.79,.34,.47,.92); /* 过渡动画 */
position: absolute; /* 绝对定位 */
}
.book:hover .page { /* 鼠标悬停时的翻页动画 */
transform: rotateY(-140deg);
}
.book:hover { /* 书本容器的旋转 */
transform: rotate(-5deg);
}</code>
JavaScript交互:
这段JavaScript代码控制翻页动画的触发:
<code class="javascript">function turnPage() {
const pages = document.querySelectorAll('.page');
pages.forEach(page => {
page.style.transform = 'rotateY(-140deg)';
});
}</code>
实现步骤:
-
创建书本结构: 使用HTML创建书本模型,包含多个
.page类元素代表每一页。 - 应用CSS样式: 将上述CSS样式应用于HTML元素,定义翻页动画和3D效果。
-
添加JavaScript事件: 将
turnPage()函数绑定到书本元素的点击事件,实现点击翻页。 -
内容填充: 在每个
.page元素中添加需要显示的内容。
通过以上步骤,结合CSS的3D变换和JavaScript的事件处理,即可轻松实现一个具有交互性的3D翻页效果。 记住根据实际需求调整CSS中的transition属性和JavaScript函数,以达到最佳的视觉效果和用户体验。










