CSS制作翻书效果

CSS翻书效果实现方法
翻书效果可以通过CSS 3D变换和过渡动画实现,以下是几种常见方法:
基础3D翻页效果
.book-page {
width: 200px;
height: 300px;
position: relative;
transform-style: preserve-3d;
transition: transform 1s;
}
.page {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
}
.front {
background: white;
transform: rotateY(0deg);
}
.back {
background: #f5f5f5;
transform: rotateY(180deg);
}
.book-page:hover {
transform: rotateY(180deg);
}
立体书页效果
<div class="book">
<div class="page"></div>
<div class="page"></div>
</div>
.book {
perspective: 2000px;
width: 300px;
height: 400px;
}
.page {
width: 100%;
height: 100%;
position: absolute;
background: white;
border: 1px solid #ccc;
transform-origin: left center;
transition: transform 0.8s ease;
}
.page:nth-child(1) {
z-index: 2;
}
.page:nth-child(2) {
z-index: 1;
}
.book:hover .page:nth-child(1) {
transform: rotateY(-160deg);
}
多页连续翻动效果
@keyframes flip {
0% { transform: rotateY(0); }
100% { transform: rotateY(-180deg); }
}
.page-container {
animation: flip 2s infinite alternate;
transform-style: preserve-3d;
}
阴影增强真实感
.page {
box-shadow:
5px 5px 10px rgba(0,0,0,0.1),
inset 0 0 20px rgba(0,0,0,0.05);
}
.book:hover .page {
box-shadow:
15px 5px 30px rgba(0,0,0,0.2),
inset -5px 0 20px rgba(0,0,0,0.1);
}
注意事项
- 确保父容器设置
perspective属性以获得3D效果 - 使用
transform-style: preserve-3d保持子元素3D空间 backface-visibility: hidden可隐藏背面内容- 调整
transform-origin可改变翻转轴心点 - 结合JavaScript可实现更复杂的交互控制
这些方法可以单独使用或组合使用,根据实际需求调整参数即可实现不同风格的翻书效果。







