浅谈CSS3中的3D动画技术原理
作者:石磊
来源:《电脑知识与技术》2015年第05
        摘要:CSS,又叫层叠样式表,是网页表现代码,目前最新的版本是CSS3。相比CSS2而言,CSS3新增了很多属性,尤其引人瞩目的当属3D和动画属性,通过它们可以在浏览器中轻松实现3D动画,而不需借助flash或者javascript。该文就对CSS33D动画进行了初步探讨,同时对CSS33D动画的应用案例进行了介绍。
        关键词:CSS33D动画网站开发
        中图分类号:TP37 文献标识码:A 文章编号:1009-3044201505-0227-01
        随着互联网的蓬勃发展,IE6已经退出历史舞台,IE8的也开始走下坡路,并跌落到了25%以内[1]IE6IE8不支持CSS3)。CSS3逐步在互联网上流行起来,并在得到了大量应用,比如,腾讯浏览器,迅雷软件,360急速浏览器等。相比CSS2而言,CSS3新增了很多属性,尤其引人瞩目的就是3D属性和动画属性。通过它们,我们可以在网页中轻松地实现3D动画。
        为了更好的探讨3D动画,笔者在页面上创建了一个蓝div标签,其代码如下:
        1 CSS33D属性
        CSS3中的3D效果主要是通过transform属性实现。本文仅以rotateY为例,讲解3D效果。要理解3D变换,首先要了解3D坐标系,如下图所示:
        水平方向代表x轴,垂直方向代表y轴,垂直于屏幕的方向则是z轴。属性rotateY就是y轴为中心进行旋转”[2]。我们为blue标签添加transform属性,如下所示:
        [&.blue{
        transformrotateY45deg);
        我们让这个蓝块围绕y轴旋转45度(deg)。可以看到,蓝方块确实发生了旋转,但是这个旋转跟变窄没有区别,缺少了3D中的透视效果。
        透视属性(perspective)是加在容器上的,表明该容器是一个3D透视空间。我们给big添加透视:
        可以看到,蓝块具有了近大远小的透视效果,视觉上出现了3D的既视感。perspective的属性值表示的是透视的距离。值越大,透视效果越明显。
        2 CSS3的动画属性
        CSS3的动画是通过关键帧keyframes来实现的,如下:
        @keyframesAni_name{0%{ }100%{ }}
        Keyframes中间百分比是指动画进度,从0%100%,中间可以插入相应的百分比。每个百分比后面有一对大括号,对应的属性写在这对大括号之间。Ani_name是动画名字。CSS3可以同时执行多个动画,要区分各个动画就要给每个动画命名。
        3 CSS3中的3D动画
        我们要让蓝块自动围绕y轴旋转。0%时,它还没有旋转,就设rotageY的值为0度;100%时,rotageY的值为360度。同时给动画命名为ani
        @keyframesani{
        0%{transformrotateY0deg); }
        100%{transformrotateY360deg);}
        }
        Keyframes只是定义了动画,但是要把动画运用在指定的标签上,还需要animation属性,如下:
        .blue{ animationani 2slinearinfinite}
        这段代码的含义是让蓝块执行ani所指定的动画,并且在2秒中匀速(linear)的从0%执行到100%,且无限次(infinite)循环的执行下去。
        这样,我们的蓝块就会匀速自动的翻转下去。如果要得到其他效果,我们可以尝试更改transform的其他属性,比如rotateXrotateZscale等等。
        4 兼容性问题
        CSS33D动画很酷,不用flash,也不用写javascript代码,使用起来很是方便。但是它的兼容性很不好,IE8及其以前的浏览器都不支持它。因此,在项目开发中是否要用到3D效果,需要根据项目的需求来定。
        5 结束语
        CSS3中的3D动画,主要就是通过transformkeyframes属性去实现的。要想实现炫酷的html animation属性3D效果,这两个属性必须要理解深透。但是,现目前还必须要考虑到兼容性问题。不过我们相信,在不久的将来,IE8等老旧的浏览器就会退出互联网舞台,以后的页面效果CSS3将会大行其道,而3D效果在其中必会大放异彩,为我们的用户带来极高的视觉体验。
        参考文献:
        [1] 百度浏览器市场份额-百度流量统计研究院[EB/OL].http//tongji.baidu/data/browser/.
        [2] 大漠. 图解CSS3:核心技术与案例实战[M].北京: 机械工业出版社, 2014.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。