有一些前沿的电商网站已经开始使用3D模型来展示商品并支持在线定制,而其中图书的展示是最为简单的一种,无需复杂的建模过程,使用图片和CSS3的一些变换即可实现更好的展示效果,简洁而实用。
书本的3D模型是所有商品中最为简单的,因为其本质上就是一个立方体(cube),只是带有封面/封底和左侧封条。 所以要构造一个3D书本展示,问题就被分解为构造一个立方体+旋转+图片背景。
1. 构造一个立方体
要创建一个立方体,首先我们需要创建一个虚拟的三维视觉空间,这可以通过设置包容器元素的perspective属性获得。
- .stage {
- width: 200px;
- height: 260px;
- perspective: 1000px;
- perspective-origin: center center;// 缺省值,可忽略
- }
CSS Code复制内容到剪贴板
- <div class="stage">
- <div class="cube">
- <figure class="back"></figure>
- <figure class="top"></figure>
- <figure class="bottom"></figure>
- <figure class="left"></figure>
- <figure class="right"></figure>
- <figure class="front"></figure>
- </div>
- </div>
我们需要根据书本的厚度和长宽来确定立方体各个面的坐标位置,在本例中所用书本模型(一本MySQL书)的绝对厚度为18.2px,高度260px,宽度197.6px。
那么根据简单的几何知识,前后面距离立方体中心的距离为18.2/2=9.1px,其中“后”元素需要再翻转一下(即“背”过去)。
CSS Code复制内容到剪贴板
- .front {
- transform: translateZ(9.1px);
- }
- .back {
- transform: rotateY(180deg) translateZ(9.1px);
- }
CSS Code复制内容到剪贴板
- .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;
- }
接着我们给前后以及左侧面元素添加背景图(可以使用一张图,然后从不同的位置截取),给其他3个面添加背景颜色,并给“底”面添加阴影效果:
CSS Code复制内容到剪贴板
- .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;
- }
3. 添加旋转动画
这个比较简单,使用rotateY方法就可以。
CSS Code复制内容到剪贴板
- @-webkit-keyframes rotate {
- 0% {
- transform: rotateY(0) translateX(-18.2px);
- }
- 100% {
- transform: rotateY(360deg) translateX(-18.2px);
- }
- }
最终的效果图如下:
关于CSS3实现3D旋转书本 的全部内容小编就给大家介绍这么多,希望对大家有所帮助!
原文:http://blog.csdn.net/iefreer/article/details/50931478
风云阁资源网 Design By www.bgabc.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
风云阁资源网 Design By www.bgabc.com
暂无评论...
更新日志
2024年09月25日
2024年09月25日
- 纯音入心系列纯音乐《天籁古筝》1CD[MP3][331MB]
- 男女对唱典藏天碟《发烧对唱·那个季节里的歌DSD》10CD[WAV]
- 群星2010-歌林精选辑[歌林][WAV+CUE]
- TrioZimbalist-PianoTriosofWeinberg,Auerbach,Dvorak(2024)[24-44,1]wav
- 群星.1992-滚石第一流台湾歌·12王牌大车拼【滚石】【WAV+CUE】
- 林子祥.1984-创作歌集【华纳】【WAV+CUE】
- 周汤豪.2010-周汤豪【华纳】【FLAC分轨】
- Mozart-TheStringQuintets-AmadeusQuartet,CecilAronowitz(2017)[24-44,1][WAV+CUE]
- JamesWilliamsDennisIrwin-Focus(2024,Red)[24-48]FLAC
- 藤泽麻衣《空みあげて》[WAV]
- 纯音入心系列纯音乐《中国古筝经典名曲》1CD[MP3][1.3GB]
- 纯音入心系列纯音乐《古筝新奏:岁月静好与筝语,细水流年与筝同》1CD[MP3][846.9MB]
- 670《脆弱敏感小女生》[320K/MP3][27.53MB]
- 曾琳.2011-好好爱我【南方】【WAV+CUE】
- 范晓萱.1995-RAIN【福茂】【WAV+CUE】