美文网首页
transition做动画卡顿问题

transition做动画卡顿问题

作者: 独钓寒江月 | 来源:发表于2020-04-29 11:23 被阅读0次

1.在使用transition做动画处理的时候,尽量使用transform来代替height,top,margin属性。

原因:CSS3新添加的Transform不会引起文档的重新布局。简而言之就是浏览器的主线程会计算样式布局等,然后交给GPU去渲染,在这个过程是浏览器将位图加载到 GPU 的内存是比较耗时的,而修改例如height的transition动画过程中,每一帧都对布局有影响从而浏览器会重新布局然后交给GPU重新渲染。但是Transform则不会影响,浏览器只需要一次生成这个元素的位图,并在动画开始的时候将它提交给GPU去处理 。之后,浏览器不需要再做任何布局、 绘制以及提交位图的操作。自然提升了速度~

2.使用开启GPU硬件加速模式

使用方法

webkit-transform: translateZ(0);
-moz-transform: translateZ(0);
-ms-transform: translateZ(0);
-o-transform: translateZ(0);
transform: translateZ(0);

或

webkit-transform: translate3d(0,0,0);
-moz-transform: translate3d(0,0,0);
-ms-transform: translate3d(0,0,0);
-o-transform: translate3d(0,0,0);
transform: translate3d(0,0,0);

我觉得最初的设计可能是为了加速渲染3D样式而启动的加速模式,但我们设置值为0后,并没有真正使用3D效果,从而使用另一种方式开启了GPU硬件加速模式。

最后我发现transition过度时有图片加载也会卡顿,要提前加载好图片

3.学习使用Performance进行动画性能分析

Chrome的DevTool中TimeLine的Frame模块然后看FPS值

FPS是指画面每秒传输帧数,数值越高越流畅

一般情况每秒 60 帧是最适合人眼的交互,小于 60,人眼能明显感觉到。

修改前最高FPS和修改后最高FPS,效率有明细提升

image image

更多参考:

前端性能优化之Performance神器

Performance - 前端性能监控利器

相关文章

  • transition做动画卡顿问题

    1.在使用transition做动画处理的时候,尽量使用transform来代替height,top,margin...

  • 应用卡顿问题分析

    1.应用卡顿原理分析 卡顿问题的表现启动卡顿:启动白屏和启动动画卡顿运行卡顿:点击相应慢,列表滑动卡,动画卡顿 原...

  • Android动画卡顿问题

    父布局执行动画后,再给这个父布局里的子控件执行动画,会出现卡顿问题,解决办法就是clean掉父布局的动画,再执行子...

  • UINavigationController在PushViewC

    导航控制器在pushViewController时的动画卡顿问题 问题描述: 在使用UINavigationCon...

  • Android动画卡顿分析

    最近处理了一个动画卡顿的问题,记录一下分析的过程; 问题分析 看了一下,出现卡顿的是一个位移的动画,具体的实现是通...

  • UINavigationController push pop动

    一、需求:优化系统push pop动画卡顿问题。 二、实现思路:UINavigationController子类中...

  • 前端知识归纳(3)-- HTML/CSS(part2 CSS动画

    目录概览: transition animation 常见CSS动画库 动画性能优化 一、transition 概...

  • Flutter Food App

    模拟器动画略有卡顿。

  • CSS3动画

    css3动画包括过渡,形变,动画 过渡transition: 指定过渡样式:transition-property...

  • CSS动画相关

    1.transition动画过渡属性 transition-property 设置过渡属性 transition-...

网友评论

      本文标题:transition做动画卡顿问题

      本文链接:https://www.haomeiwen.com/subject/ablgwhtx.html