css滚动动画(浅析CSS的性能优化)

:暂无数据 2026-09-16 14:40:06 :2

css滚动动画(浅析CSS的性能优化)

其实css滚动动画的问题并不复杂,但是又很多的朋友都不太了解浅析CSS的性能优化,因此呢,今天小编就来为大家分享css滚动动画的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

本文目录

浅析CSS的性能优化

下面我们来看一个动画效果(类似平时页面滚动功能),在该动画是让一个球沿着某种路径移动。最简单的方式就是实时调整它们的left和top属性,使用css动画实现。

在运行的时候即使是在电脑浏览器上也会隐约觉得动画的运行并不流畅,更不要提在移动端达到60fps的流畅效果了。这是因为top和left的改变会触发浏览器的reflow和repaint,整个动画过程都在不断触发浏览器的重新渲染,这个过程是很影响性能的。

为了解决这个问题,我们使用transform中的translate()来替换top和left

这个时候我们就会发现整个动画效果流畅了很多,在动画移动的过程中也没有发生repaint和reflow。那么为什么transform没有出发repaint呢?原因就是transform动画由GPU控制,支持硬件加速,并不需要软件方面的渲染。

浏览器收到页面文档后,会将文档中的标记语言解析为DOM树,DOM和CSS结合后形成浏览器构建页面的渲染树,渲染树中包含了大量的渲染元素,每一个渲染元素会被分到一个图层中,每个又会被加载到GPU形成渲染纹理,而图层在GPU中transform是不会触发repaint的,这一点非常类似3D绘图功能,最终这些使用transform的图层都会使用独立的合成器进程进行处理,移动时的变化也是独立的,不会影响到页面的其他元素,造成重排重绘是因为影响到页面的其他图层元素导致的,可以理解为其他元素都是在一个图层空间,所以一个图层移动其他的也会收到影响,而transform创建了一个新的复合图层,它会被GPU独立执行transform操作,跟其他图层互不影响,所以不会引起重排重绘。
此时,你也许会问浏览器什么时候会创建一个独立的复合图层呢?事实上一般是在以下几种情况下:

因为GPU进程会为其开启一个新的复合图层,不会影响默认复合图层(就是普通文档流),所以并不会影响周边的 DOM 结构,而属性的改变也会交给 GPU 处理,不会进行重排。使 GPU 进程开启一个新的复合图层的方式还有 3D 动画,过渡动画,以及 opacity 属性,还有一些标签,这些都可以创建新的复合图层。这些方式叫做硬件加速方式。你可以想象成新的复合图层和默认复合图层是两幅画,相互独立,不会彼此影响。降低重排的方式:要么减少次数,要么降低影响范围,创建新的复合图层就是第二种优化方式。绝对布局虽然脱离了文档流,但不会创建新的复合图层,因此当绝对布局改变时,不会影响普通文档流的 render tree,但是依然会绘制整个默认复合图层,对普通文档流是有影响的。普通文档流就是默认复合图层,不要介意我交换使用它们如果你要使用硬件加速方式降低重排的影响,请不要过度使用,创建新的复合图层是有额外消耗的,比如更多的内存消耗,并且在使用硬件加速方式时,配合 z-index 一起使用,尽可能使新的复合图层的元素层级等级最高。

(1)transform
(2)opacity
(3)filter

(1)内存。如果GPU加载了大量的纹理,那么很容易就会发生内存问题,这一点在移动端尤为明显。
(2)使用GPU渲染会影响字体的抗锯齿效果。这是因为GPU和CPU具有不同的渲染机制,即使最终硬件加速停止了,文本还是会在动画期间显示的很模糊。

1、transform会使用GPU硬件加速,性能更好,position + top/left会触发大量的重排重绘,性能影响较大。
2、硬件加速的工作原理是创建一个新的复合图层,然后使用合成线程进行渲染
3、3D和2D动画的区别,2D动画会在动画开始和动画结束时触发2次重新渲染
4、使用了GPU可以优化动画小故宫但是不要滥用,会有内存问题
5、理解强制触发硬件加速的transform技巧,使用对GPU友好的CSS属性

***隐藏网址***

el-scrollbar是elementui自带的页面滚动条,如果用页面滚动条,我们发现在ie浏览器下卡顿很明显,但是用el-scrollbar滚动页面就会感觉会流畅很多,因为页面滚动会引发重排重绘,但是el-scrollbar是用transform不会引起,所以用el-scrollbar会感觉流畅很多,转订单去掉overflow:hidden就会流畅是因为这个样式会覆盖el-scrollbar的样式,

uniapp的动画运用(四)如何与css3动画结合使用《消息列表循环滚动》

1.模板

2.开关定义

3.滚动方法

4.css动画定义

css3,怎么让图片自动动起来

下面是一个例子,具体的需要你自己慢慢学习。

《!DOCTYPE html》
《html》
《head》
《style》 
div
{
width:100px;
height:100px;
background:red;
position:relative;
animation:myfirst 5s linear 2s infinite alternate;
/* Firefox: */
-moz-animation:myfirst 5s linear 2s infinite alternate;
/* Safari and Chrome: */
-webkit-animation:myfirst 5s linear 2s infinite alternate;
/* Opera: */
-o-animation:myfirst 5s linear 2s infinite alternate;
}
@keyframes myfirst
{
0%   {background:red; left:0px; top:0px;}
25%  {background:yellow; left:200px; top:0px;}
50%  {background:blue; left:200px; top:200px;}
75%  {background:green; left:0px; top:200px;}
100% {background:red; left:0px; top:0px;}
}
@-moz-keyframes myfirst /* Firefox */
{
0%   {background:red; left:0px; top:0px;}
25%  {background:yellow; left:200px; top:0px;}
50%  {background:blue; left:200px; top:200px;}
75%  {background:green; left:0px; top:200px;}
100% {background:red; left:0px; top:0px;}
}
@-webkit-keyframes myfirst /* Safari and Chrome */
{
0%   {background:red; left:0px; top:0px;}
25%  {background:yellow; left:200px; top:0px;}
50%  {background:blue; left:200px; top:200px;}
75%  {background:green; left:0px; top:200px;}
100% {background:red; left:0px; top:0px;}
}
@-o-keyframes myfirst /* Opera */
{
0%   {background:red; left:0px; top:0px;}
25%  {background:yellow; left:200px; top:0px;}
50%  {background:blue; left:200px; top:200px;}
75%  {background:green; left:0px; top:200px;}
100% {background:red; left:0px; top:0px;}
}
《/style》
《/head》
《body》
《p》本例在 Internet Explorer 中无效。《/p》
《div》《/div》
《/body》
《/html》

文章分享结束,css滚动动画和浅析CSS的性能优化的答案你都知道了吗?欢迎再次光临本站哦!

css滚动动画(浅析CSS的性能优化)

本文编辑:admin

更多文章:


怎么做网站网页归档(网页应该怎么做网页设计有哪些要求)

怎么做网站网页归档(网页应该怎么做网页设计有哪些要求)

大家好,怎么做网站网页归档相信很多的网友都不是很明白,包括网页应该怎么做网页设计有哪些要求也是一样,不过没有关系,接下来就来为大家分享关于怎么做网站网页归档和网页应该怎么做网页设计有哪些要求的一些知识点,大家可以关注收藏,免得下次来找不到哦

2026年10月11日 05:30

跷二郎腿太低好吗?想要通过贴墙站改正二郎腿影响的话,有哪些要点需要注意

跷二郎腿太低好吗?想要通过贴墙站改正二郎腿影响的话,有哪些要点需要注意

本篇文章给大家谈谈二郎腿贴地,以及跷二郎腿太低好吗对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 05:10

易语言点击js按钮(易语言网页填表怎样点击链接为“javascript:void(0)“的按钮)

易语言点击js按钮(易语言网页填表怎样点击链接为“javascript:void(0)“的按钮)

本篇文章给大家谈谈易语言点击js按钮,以及易语言网页填表怎样点击链接为“javascript:void(0)“的按钮对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要

2026年10月11日 03:00

regards(Regards,什么意思)

regards(Regards,什么意思)

其实regards的问题并不复杂,但是又很多的朋友都不太了解Regards,什么意思,因此呢,今天小编就来为大家分享regards的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 01:10

dom4j文档(如何去掉用dom4j生成的XML文档中的)

dom4j文档(如何去掉用dom4j生成的XML文档中的)

其实dom4j文档的问题并不复杂,但是又很多的朋友都不太了解如何去掉用dom4j生成的XML文档中的,因此呢,今天小编就来为大家分享dom4j文档的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 01:00

compare with造句(用compared with和compared to造句)

compare with造句(用compared with和compared to造句)

“compare with造句”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看compare with造句(用compared with和compared to造句)!

2026年10月10日 23:30

xshell软件(Xshell怎么更改字体大小)

xshell软件(Xshell怎么更改字体大小)

各位老铁们好,相信很多人对xshell软件都不是特别的了解,因此呢,今天就来为大家分享下关于xshell软件以及Xshell怎么更改字体大小的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月10日 22:50

tensorflow与keras对应版本(为什么tensorflow2.8没有keras)

tensorflow与keras对应版本(为什么tensorflow2.8没有keras)

各位老铁们好,相信很多人对tensorflow与keras对应版本都不是特别的了解,因此呢,今天就来为大家分享下关于tensorflow与keras对应版本以及为什么tensorflow2.8没有keras的问题知识,还望可以帮助大家,解决

2026年10月10日 22:10

个人网站首页界面(深圳社会保险服务个人网页主页)

个人网站首页界面(深圳社会保险服务个人网页主页)

“个人网站首页界面”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看个人网站首页界面(深圳社会保险服务个人网页主页)!

2026年10月10日 22:00

maven仓库jar网站(如何在maven仓库中添加jar包)

maven仓库jar网站(如何在maven仓库中添加jar包)

这篇文章给大家聊聊关于maven仓库jar网站,以及如何在maven仓库中添加jar包对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月10日 19:50

最近更新

hp421笔记本usb启动(HP笔记本421-LJ745PA 如何设置BIOS设置USB-CDROM启动HP新BIOS)
2026-10-11 11:20:04 浏览:0
热门文章

by网站域名444(444ppp现在是什么域名)
2026-08-19 20:20:31 浏览:13
韩国大片视频mv(韩国20个感人mv)
2026-07-11 13:10:02 浏览:12
标签列表