如何减少浏览器的reflow和repaint
作者:bea
1.避免在document上直接进行频繁的DOM操作,如果确实需要可以采用off-document的方式进行,具体的方法包括但不完全包括以下几种:
(1). 先将元素从document中删除,完成修改后再把元素放回原来的位置
(2). 将元素的display设置为”none”,完成修改后再把display修改为原来的值
(3). 如果需要创建多个DOM节点,可以使用DocumentFragment创建完后一次性的加入document
2.集中修改样式
(1). 尽可能少的修改元素style上的属性
(2). 尽量通过修改className来修改样式
(3). 通过cssText属性来设置样式值
3. 缓存Layout属性值
对于Layout属性中非引用类型的值(数字型),如果需要多次访问则可以在一次访问时先存储到局部变量中,之后都使用局部变量,这样可以避免每次读取属性时造成浏览器的渲染。
var width = el.offsetWidth; var scrollLeft = el.scrollLeft;
4.设置元素的position为absolute或fixed
在元素的position为static和relative时,元素处于DOM树结构当中,当对元素的某个操作需要重新渲染时,浏览器会渲染整个页面。将元素的position设置为absolute和fixed可以使元素从DOM树结构中脱离出来独立的存在,而浏览器在需要渲染时只需要渲染该元素以及位于该元素下方的元素,从而在某种程度上缩短浏览器渲染时间,这在当今越来越多的Javascript动画方面尤其值得考虑。
以上就是个人总结的一些关于减少浏览器reflow和repaint的事项,希望大家能够喜欢。
猜你喜欢
您可能感兴趣的文章:
- JS仿Windows开机启动Loading进度条的方法
- JS实现跟随鼠标闪烁转动色块的方法
- javascript中typeof操作符和constucor属性检测
- JS实现网页滚动条感应鼠标变色的方法
- js随机生成网页背景颜色的方法
- jQuery简单实现隐藏以及显示特效
- 最流行的Node.js精简型和全栈型开发框架介绍
- jQuery对象初始化的传参方式
- JS实现文字链接感应鼠标淡入淡出改变颜色的方法
- JS实现很酷的水波文字特效实例
- jQuery中slideUp 和 slideDown 的点击事件
- jQuery实现移动 和 渐变特效的点击事件
- jQuery 回调函数(callback)的使用和基础
- 使用jQuery获得内容以及内容的属性
- js实现跟随鼠标移动且带关闭功能的图片广告实例
- jquery渐隐渐显的图片幻灯闪烁切换实现方法
- 2则自己编写的jQuery特效分享
- javascript制作网页图片上实现下雨效果
- js实现格式化金额,字符,时间的方法