网站首页 > 基础教程 正文
CSS3实现球体旋转
本教程简述如何用CSS3实现旋转的球体
效果如下图所示,球体沿着中间的轴旋转:
要理解的知识点
1 三维空间的透视属性
css属性:perspective
perspective 属性有两个值,none 和 自己定义的具体像素,例如1000px。
注意:当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身,所以我们可以把这个属性理解为照相机和被拍摄物体的距离,CSS3 3D 变换中透视的透视点是在浏览器的前方,当我们设置它的值为具体数值的时候,其子元素就会具有近大远小,近实远虚的效果。
目前这个属性对浏览器支持还不算太好,只有Chrome 和 Safari 支持替代的 -webkit-perspective 属性。
2 css属性transform-style
这个属性浏览器支持情况良好,除了ie浏览器,其他浏览器都支持。Firefox 支持 transform-style 属性,而Chrome、Safari 和 Opera 支持替代的 -webkit-transform-style 属性。
transform-style属性是设置其子元素是否保留3d位置的。
它也是有两个值:
1 默认值是flat,表示其子元素不保留3d位置。
2另一个值是preserve-3d,当元素设置了这个值的时候,其子元素就相当于进入了三维空间。
如图所示:
x轴表示横向的轴
y轴表示纵向的轴
z轴其实就是我们的视线,是与我们直视的水平面垂直的
如果一个元素沿着x轴旋转,可以想象成奥运单杆运动员那样运动~
如果一个元素沿着y轴旋转,可以想象成公园旋转木马沿着中间的柱子绕圈圈~
而元素沿着z轴旋转的话更好理解了,可以想象成视线正前方,有一个风扇,风扇的扇叶就是沿着z轴旋转的~
关于3d的一些相关属性,介绍完毕,那么开始案例制作
结构和样式
(代码如下,具体属性都添加了对应注释)
效果如图:
此时我们给球体整体则.ball_in元素沿着x轴向前倾斜和沿着z轴向左倾斜一定角度,则立体感更强。
代码:
效果如图:
利用伪元素给球体添加中心轴,代码如下:
效果如图:
最后步骤,给每个li添加颜色和整个球体添加旋转的动画:
整个球体添加旋转的动画代码如下:
最终效果如图:
(绕着y轴转圈圈)
是否觉得五颜六色的球体没意思?
其实还可以改装一下,搞点小意思,例如球体不需要那么多个面,然后把剩余的面换成好看的图片,改装后效果如图:
有没有一种cd在三维空间旋转的感觉?
又或者我们再改装一下,效果如下图:
好了,最后奉上案例源码,有兴趣的朋友可以自行下载。http://bbs.520it.com/ueditor/php/upload/file/20161109/1478670247341112.zip
想要了解小码哥网页ui学院更多课程,可以到此链接:http://www.520it.com/special/ui
还有,小码哥论坛bbs.520it.com欢迎您随时来逛逛
猜你喜欢
- 2024-10-10 让交互更加生动!有意思的鼠标跟随 3D 旋转动效
- 2024-10-10 「抖音最火」的3D旋转透视酷炫相册,如何用CSS3去实现
- 2024-10-10 纯CSS3实现旋转流星旋转光环效果 css旋转动画效果
- 2024-10-10 CSS3旋转实例学习(附3D旋转实例) css3实现360度旋转
- 2024-10-10 CSS3之日记翻页效果详解 日记翻页视频的模板
- 2024-10-10 如何使用纯CSS技术实现3D书本动态展示效果?
- 2024-10-10 CSS3之3D魔方鼠标控制酷炫效果 3d魔方代码
- 2024-10-10 CSS3专题(五)—实力宠粉,来了,来了,你们要的3D幻灯片来了
- 2024-10-10 css之3D效果——正方体 css正方体照片墙源码
- 2024-10-10 26.HTML 2D和3D变换 html2d旋转
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)