码迷,mamicode.com
首页 > Web开发 > 详细

CSS3高性能动画

时间:2014-12-22 22:37:45      阅读:259      评论:0      收藏:0      [点我收藏+]

标签:

CSS动画属性会触发整个页面的重排relayout、重绘repaint、重组recomposite

Paint通常是其中最花费性能的,尽可能避免使用触发paint的CSS动画属性,在CSS动画中使用webkit-transform: translateX(3em)的方案代替使用left: 3em,因为left会额外触发layout与paint,而webkit-transform只触发整个页面composite;

技术分享
div {
  /*IE10以下支持哈*/
  /*定义动画完成一个周期所需要的时间,以秒或毫秒计*/
  -webkit-animation-duration: 5s;
   /*绑定规则名字*/
  -webkit-animation-name: move;
  /*规定播放次数 无限次*/
  -webkit-animation-iteration-count: infinite;
   /*定义是否应该轮流反向播放动画*/
  -webkit-animation-direction: alternate;
  width: 200px;
  height: 200px;
  margin: 100px;
  background-color: #808080;
 /*性能优化,尽量让动画元素脱离文档流,以减少重排*/
  position: absolute;
}
/*css3动画  @keyframes 规则*/
/*制定规则为move的动画*/
@-webkit-keyframes move{
    from {
        left: 100px;
    }
    to {
        left: 200px;
    }
}

/*这里的@keyframes规则中left会额外触发layout和paint   应该优化为transform形式  transform只会触发composite*/
@-webkit-keyframes move{
    from {
        -webkit-transform: translateX(100px);
    }
    to {
        -webkit-transform: translateX(200px);
    }
}
/*相应兼容性修改-webkit前缀即可*/
View Code

 参考:http://www.w3school.com.cn/css3/css3_animation.asp

*********IE10以下不支持animation-direction,修改代码中的错误注释********

CSS3高性能动画

标签:

原文地址:http://www.cnblogs.com/zoujking/p/4179112.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!