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

深入理解css属性的选择对动画性能的影响

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

本文主要包含css动画属性,jquery修改css属性,css属性选择器,css属性,css属性大全等相关知识,佚名 希望在学习及工作中可以帮助到您

现在手机的占比越来越高,各种酷炫页面层出不穷,这些特效都离不开css动画。说到css动画,主流的情况也就无非这两大类:位移和形变。而我们在写一个动画特效的过程中,如何去提升它的性能呢?当然首先我们需要去了解一下基本的概念,比如浏览器渲染的工作原理等,这些我也在读了几位大牛写的相关文章后才有了一定的了解,这边我也不细说了,有兴趣的同学可以去了解一下。本次的目的简单粗暴地讲,其实就是我们应该使用什么css属性去进行动画的绘制时,能够有效的提高浏览器在渲染和绘制过程中的性能。

分别使用了left和transform在2秒内向右平移了500px的位移。代码如下:

</div>
  1. <style>   
  2. .box-ps,.box-tf{position:absolute;top:0;left:0;width:100px;height:100px;background-color:red;}   
  3. .box-ps{-webkit-animation:box-ps 2s linear;}   
  4. .box-tf{-webkit-animation:box-tf 2s linear;}   
  5.   
  6. @-webkit-keyframes box-ps{   
  7. 0%{   
  8. left:0;   
  9. }100%{   
  10. left:500px;   
  11. }   
  12. }   
  13.   
  14. @-webkit-keyframes box-tf{   
  15. 0%{   
  16. -webkit-transform:translate(0,0);   
  17. }100%{   
  18. -webkit-transform:translate(500px,0);   
  19. }   
  20. }   
  21. </style>   
  22.   
  23. <body>   
  24. <div class="box-ps"></div>   
  25. <div class="box-tf"></div>   
  26. </body>  
</div> </div>

然后在chrome下得到了如下的结果,第一张为使用left的截图,第二张为使用transform的截图:

transform的截图

 

显而易见,我们在帧模式这里可以看到left比transform帧数要低,而且在渲染和绘制这边的耗时,left要远远的大于transform。看到这里,相信大家心里已经有结论了。
我们再利用chrome的show paint rectangles来观察一下两者在动画过程中,渲染和绘制的区域有何差异,第一张为使用left的截图,第二张为使用transform的截图:

transform的截图

我们可以看到,使用left写的整个动画过程中,浏览器一直在进行绘制处理。而相对而言,使用transform时,仅仅是在动画开始和结束是进行了绘制。因此,对于动画的性能上,transform要更为出色。至于原因,这里就要引入一个触发重新布局的概念:

我们在改变一些属性时,如果是跟layout相关的属性,则会触发重新布局,导致渲染和绘制所需要的时间将会更长。因此,我们在写动画的时候因该规避这些属性:width, height, margin, padding, border, display, top, right, bottom ,left, position, float, overflow等。
不会出发重新布局的属性有:transform(其中的translate, rotate, scale), color, background等。

所以,我们平时在写css动画时,应该优先使用不触发重新布局的属性,这样可以使我们所展示动画效果的更加流畅。

以上这篇深入理解css属性的选择对动画性能的影响就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

原文地址:http://www.cnblogs.com/dehua-chen/archive/2016/04/20/5411728.html

</div>

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

  • 深入理解css属性的选择对动画性能的影响

相关文章

  • 2017-06-02前端制作动画的几种方式(css3,js)
  • 2017-06-02基于css3实现漂亮便签样式
  • 2017-06-02CSS3 Media Queries详细介绍和使用实例
  • 2017-06-02CSS3实现圆角、阴影、透明效果并兼容各大浏览器
  • 2017-06-02使用css3匹配手机屏幕横竖状态
  • 2017-06-02使用CSS3创建动态菜单效果
  • 2017-06-02一款纯css3实现简单的checkbox复选框和radio单选框
  • 2017-06-02CSS3使用transition实现的鼠标悬停淡入淡出
  • 2017-06-026种非常炫酷的CSS3按钮边框动画特效
  • 2017-06-02详解Css3新特性应用之过渡与动画

文章分类

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

最近更新的内容

    • 纯css3实现效果超级炫的checkbox复选框和radio单选框
    • CSS3区域模块region相关编写示例
    • 利用CSS3实现圆角的outline效果的教程
    • CSS的pointer-events属性详细介绍(作用和注意事项)
    • CSS3 RGBA色彩模式使用实例讲解
    • 利用CSS3的border-radius绘制太极及爱心图案示例
    • 纯CSS改变webkit内核浏览器的滚动条样式
    • CSS3 透明色 RGBA使用介绍
    • CSS实现的一闪而过的图片闪光效果
    • 深入浅出CSS3 background-clip,background-origin和border-image教程

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

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