• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >css3 > 纯CSS3实现3D旋转书本效果

纯CSS3实现3D旋转书本效果

作者:陈小峰 字体:[增加 减小] 来源:互联网 时间:2017-06-02

本文主要包含css3实现3d旋转,css3实现3d效果,css3实现图片轮播,css3实现图片旋转,css3实现自适应等相关知识,陈小峰 希望在学习及工作中可以帮助到您

有一些前沿的电商网站已经开始使用3D模型来展示商品并支持在线定制,而其中图书的展示是最为简单的一种,无需复杂的建模过程,使用图片和CSS3的一些变换即可实现更好的展示效果,简洁而实用。
书本的3D模型是所有商品中最为简单的,因为其本质上就是一个立方体(cube),只是带有封面/封底和左侧封条。 所以要构造一个3D书本展示,问题就被分解为构造一个立方体+旋转+图片背景。
1. 构造一个立方体
要创建一个立方体,首先我们需要创建一个虚拟的三维视觉空间,这可以通过设置包容器元素的perspective属性获得。


</div>
  1. .stage {    
  2. width: 200px;    
  3. height: 260px;    
  4. perspective: 1000px;    
  5. perspective-origin: center center;// 缺省值,可忽略    
  6. }  
</div> </div> 上述代码把元素放在距离观察点1000px的地方(Z轴向),并且在X/Y轴向上居中。
</div>
  1. <div class="stage">    
  2. <div class="cube">    
  3. <figure class="back"></figure>    
  4. <figure class="top"></figure>    
  5. <figure class="bottom"></figure>    
  6. <figure class="left"></figure>    
  7. <figure class="right"></figure>    
  8. <figure class="front"></figure>    
  9. </div>    
  10. </div>   
</div> </div> 接着,我们在包容器元素里面添加一个立方体元素,6个边(上下左右和前后),之所以使用figure,是因为需要支持贴图。
我们需要根据书本的厚度和长宽来确定立方体各个面的坐标位置,在本例中所用书本模型(一本MySQL书)的绝对厚度为18.2px,高度260px,宽度197.6px。
那么根据简单的几何知识,前后面距离立方体中心的距离为18.2/2=9.1px,其中“后”元素需要再翻转一下(即“背”过去)。
</div>
  1. .front {    
  2. transform: translateZ(9.1px);    
  3. }    
  4. .back {    
  5. transform: rotateY(180deg) translateZ(9.1px);    
  6. }   
</div> </div> 用类似的计算方法,我们可以把其他4条边放置(平移+旋转变换)到各自的位置,从而拼装成一个虚拟的立方体。
</div>
  1. .front {    
  2. transform: translateZ(9.1px);    
  3. }    
  4. .back {    
  5. transform: rotateY(180deg) translateZ(9.1px);    
  6. }    
  7. .top {    
  8. transform: rotateX(90deg) rotateZ(90deg) translateZ(98.8px) translateY(-89.7px);    
  9. width: 18.2px;    
  10. height: 197.6px;    
  11. }    
  12. .bottombottom {    
  13. transform: rotateX(-90deg) rotateZ(90deg) translateZ(161.2px) translateY(-89.7px);    
  14. }    
  15. .left {    
  16. transform: rotateY(-90deg) translateZ(9.1px);    
  17. width: 18.2px;    
  18. }    
  19. .rightright {    
  20. transform: rotateY(90deg) translateZ(188.5px);    
  21. width: 18.2px;    
  22. }  
</div> </div> 2. 添加封面
接着我们给前后以及左侧面元素添加背景图(可以使用一张图,然后从不同的位置截取),给其他3个面添加背景颜色,并给“底”面添加阴影效果:

您可能想查找下面的文章:

  • CSS3简单实现照片墙
  • 一款纯css3实现的响应式导航
  • 纯CSS3实现3D旋转书本效果

相关文章

  • 2017-06-02实例讲解CSS3中的border-radius属性
  • 2017-06-02使用CSS3的font-face字体嵌入样式的方法讲解
  • 2017-06-02CSS3教程(6):创建网站多列
  • 2017-06-02一款基于css3和jquery实现的动画显示弹出层按钮教程
  • 2017-06-02CSS3制作半透明边框(Facebox)类似渐变
  • 2017-06-02实例讲解CSS3中的box-flex弹性盒属性布局
  • 2017-06-02纯css3(无图片/js)制作的几个社交媒体网站的图标
  • 2017-06-02IE浏览器单独写CSS样式的几种方法
  • 2017-06-02css3绘制天猫logo实现代码
  • 2017-06-02详解CSS3阴影 box-shadow的使用和技巧总结

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 详解CSS3阴影 box-shadow的使用和技巧总结
    • CSS中的字体大小设置属性总结
    • 利用CSS3实现平移动画效果示例代码
    • CSS3的新特性介绍
    • CSS3实现多重边框的方法总结
    • CSS3中border-radius属性设定圆角的使用技巧
    • 分享CSS3中必须要知道的10个顶级命令
    • CSS3 3D立方体效果示例-transform也不过如此
    • CSS3实现任意图片lowpoly动画效果实例
    • 检测用户浏览器是否支持CSS3的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有