最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

CSS3动画之3D旋转书本效果

来源:懂视网 责编:小采 时间:2020-11-27 16:41:34
文档

CSS3动画之3D旋转书本效果

CSS3动画之3D旋转书本效果:有一些前沿的电商网站已经开始使用3D模型来展示商品并支持在线定制,而其中图书的展示是最为简单的一种,无需复杂的建模过程,使用图片和CSS3的一些变换即可实现更好的展示效果,简洁而实用。 书本的3D模型是所有商品中最为简单的,因为其本质上就是一个立方
推荐度:
导读CSS3动画之3D旋转书本效果:有一些前沿的电商网站已经开始使用3D模型来展示商品并支持在线定制,而其中图书的展示是最为简单的一种,无需复杂的建模过程,使用图片和CSS3的一些变换即可实现更好的展示效果,简洁而实用。 书本的3D模型是所有商品中最为简单的,因为其本质上就是一个立方
有一些前沿的电商网站已经开始使用3D模型来展示商品并支持在线定制,而其中图书的展示是最为简单的一种,无需复杂的建模过程,使用图片和CSS3的一些变换即可实现更好的展示效果,简洁而实用。
书本的3D模型是所有商品中最为简单的,因为其本质上就是一个立方体(cube),只是带有封面/封底和左侧封条。 所以要构造一个3D书本展示,问题就被分解为构造一个立方体+旋转+图片背景。

1. 构造一个立方体

要创建一个立方体,首先我们需要创建一个虚拟的三维视觉空间,这可以通过设置包容器元素的perspective属性获得。

CSS3动画之3D旋转书本效果

.stage { 
width: 200px; 
height: 260px; 
perspective: 1000px; 
perspective-origin: center center;// 缺省值,可忽略 
} 

上述代码把元素放在距离观察点1000px的地方(Z轴向),并且在X/Y轴向上居中。

 
 

接着,我们在包容器元素里面添加一个立方体元素,6个边(上下左右和前后),之所以使用figure,是因为需要支持贴图。
我们需要根据书本的厚度和长宽来确定立方体各个面的坐标位置,在本例中所用书本模型(一本MySQL书)的绝对厚度为18.2px,高度260px,宽度197.6px。
那么根据简单的几何知识,前后面距离立方体中心的距离为18.2/2=9.1px,其中“后”元素需要再翻转一下(即“背”过去)。

.front { 
transform: translateZ(9.1px); 
} 
.back { 
transform: rotateY(180deg) translateZ(9.1px); 
} 

用类似的计算方法,我们可以把其他4条边放置(平移+旋转变换)到各自的位置,从而拼装成一个虚拟的立方体。

.front { 
transform: translateZ(9.1px); 
} 
.back { 
transform: rotateY(180deg) translateZ(9.1px); 
} 
.top { 
transform: rotateX(90deg) rotateZ(90deg) translateZ(98.8px) translateY(-89.7px); 
width: 18.2px; 
height: 197.6px; 
} 
.bottombottom { 
transform: rotateX(-90deg) rotateZ(90deg) translateZ(161.2px) translateY(-89.7px); 
} 
.left { 
transform: rotateY(-90deg) translateZ(9.1px); 
width: 18.2px; 
} 
.rightright { 
transform: rotateY(90deg) translateZ(188.5px); 
width: 18.2px; 
} 

2. 添加封面

接着我们给前后以及左侧面元素添加背景图(可以使用一张图,然后从不同的位置截取),给其他3个面添加背景颜色,并给“底”面添加阴影效果:

.front { 
transform: translateZ(9.1px); 
background: url("//wow.techbrood.com/uploads/160301/mysql.png") top rightright; 
background-size: auto 100%; 
} 
.back { 
transform: rotateY(180deg) translateZ(9.1px); 
background: url("//wow.techbrood.com/uploads/160301/mysql.png") top left; 
background-size: auto 100%; 
} 
.top { 
transform: rotateX(90deg) rotateZ(90deg) translateZ(98.8px) translateY(-89.7px); 
background: #fafafa; 
width: 18.2px; 
height: 197.6px; 
} 
.bottombottom { 
transform: rotateX(-90deg) rotateZ(90deg) translateZ(161.2px) translateY(-89.7px); 
background: #ccc; 
width: 18.2px; 
height: 197.6px; 
-webkit-filter: drop-shadow(0 0 26px rgba(0, 0, 0, 0.75)); 
} 
.left { 
transform: rotateY(-90deg) translateZ(9.1px); 
background: url("//wow.techbrood.com/uploads/160301/mysql.png") top center; 
background-size: auto 100%; 
width: 18.2px; 
} 
.rightright { 
transform: rotateY(90deg) translateZ(188.5px); 
background: #ddd; 
background-size: auto 100%; 
width: 18.2px; 
} 

这样我们就实现了一个逼真的3D书本视觉模型。

3. 添加旋转动画

这个比较简单,使用rotateY方法就可以。

@-webkit-keyframes rotate { 
0% { 
transform: rotateY(0) translateX(-18.2px); 
} 
100% { 
transform: rotateY(360deg) translateX(-18.2px); 
} 
} 

最终的效果图如下:

CSS3动画之3D旋转书本效果

以上是本文全部类容,如果需要了解更多CSS3动画请阅读css3 教程中的css3 动画章节

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

CSS3动画之3D旋转书本效果

CSS3动画之3D旋转书本效果:有一些前沿的电商网站已经开始使用3D模型来展示商品并支持在线定制,而其中图书的展示是最为简单的一种,无需复杂的建模过程,使用图片和CSS3的一些变换即可实现更好的展示效果,简洁而实用。 书本的3D模型是所有商品中最为简单的,因为其本质上就是一个立方
推荐度:
标签: 旋转 动画 3d
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top