相同的动画(没有图片。用纯 CSS 实现和用 Javascript 实现,那个会更快呢?

2015-07-14 14:04:55 +08:00
 meteor2013
1283 次点击
所在节点    问与答
4 条回复
imn1
2015-07-14 14:09:49 +08:00
css
learnshare
2015-07-14 14:10:46 +08:00
YuJianrong
2015-07-14 14:37:57 +08:00
这要看怎么定义快。
CSS transform+transition(animation): 现在大部分设备(包括移动设备)都提供了GPU加速的transform+transition支持,也就是说用这个做动画流畅度很高(快解释为流畅度的话),但也有缺点,缺点就是在没动画的时候加上动画的话,浏览器渲染器需要将dom render成贴图,再交给GPU去加速的,这里会有一个在部分移动设备上是人眼能觉察的延迟。
CSS + Javascript: 首先做动画的流畅度是肯定不如CSS的,然后响应(快解释为响应的话)要看你的JS是否会导致relayout。如果没有relayout只有repaint的话即使是移动设备响应延迟也几乎无法察觉。
Canvas + Javascript: 响应最好的方案,毕竟没有relayout repaint什么一大堆。缺点是写起来很困难,根本不像在做网页了,流畅度介于以上两方案中间,原因很简单:虽然canvas的描绘是GPU加速的,但每一帧的刷新代码却是JS,自然比纯native的方案流畅度有所降低。
leojoy710
2015-07-14 14:55:24 +08:00
http://greensock.com/css-performance
还有这篇文章下面一篇google的文章
https://developers.google.com/web/fundamentals/look-and-feel/animations/css-vs-javascript

结论就是 请根据具体动画的情况适用css或者js
js+transform应该是比transition/animation+transform要快

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/205604

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX