css动画

2014年09月09日

css3 animation

w3c上说“为了得到最佳的浏览器支持,您应该始终定义 0% 和 100% 选择器“。 下面记录两个之前没用到过的属性:

①animation-play-state:paused/running 规定动画正在运行还是终止
②animation-fill-mode:none/forwards/backwards/both 规定动画在播放之前或之后,其动画效果是否可见。

css3动画跟css3的2D和3D转换,css3过渡等综合使用。

csss 3D

张鑫旭的文章写的很黄很暴力访问

关键几点: 3D transform中有下面这三个方法:

rotateX( angle )
rotateY( angle )
rotateZ( angle )
//rotate旋转的意思,rotateX旋转X轴,rotateY旋转Y轴,rotateZ旋转Z轴(三维坐标)

perspective(透视,视角),没有透视不成3D

###js动画与css3动画

现有的前端动画体系中,通常有两种模式:JS动画与CSS3动画。 JS动画是通过JS动态改写样式实现动画能力的一种方案,在PC端兼容低端浏览器中不失为一种推荐方案。 而在移动端,我们选择性能更优浏览器原生实现方案:CSS3动画.但是css3动画移动多终端设备场景下,相比PC会面对更多的性能问题,主要体现在动画的卡顿与闪烁。

目前对提升移动端CSS3动画体验的主要方法有几点: 尽可能多的利用硬件能力,如使用3D变形来开启GPU加速

-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
如动画过程有闪烁(通常发生在动画开始的时候),可以尝试下面的Hack:

-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
backface-visibility: hidden;
 
-webkit-perspective: 1000;
-moz-perspective: 1000;
-ms-perspective: 1000;
perspective: 1000;

一个元素通过translate3d右移500px的动画流畅度会明显优于使用left属性

尽可能少的使用box-shadows与gradients

box-shadows与gradients往往都是页面的性能杀手,尤其是在一个元素同时都使用了它们,所以拥抱扁平化设计吧。

尽可能的让动画元素不在文档流中,以减少重排 position: fixed; position: absolute; 以上来自访问