【发布时间】:2019-04-04 13:51:32
【问题描述】:
众所周知,更改元素皮肤时会发生重绘,更改布局时会发生重排。但是,我有一个问题,在更改 img src 属性时是否会导致回流。
例如,有两个不同大小的图像,分别称为 A.png 和 B.png。
html:
<button>change image src<button>
<img src="A.png">
然后我们通过js修改img src:
document.querySelector('button').onclick = function() {
document.querySelector('img').src = 'B.png';
}
因为A.png和B.png的大小不同,所以在更改img src时会导致repaint和reflow。
但是如果我们通过css来固定img的大小,如下:
img {
width: 100px;
height: 100px;
}
如果我们再次更改img src,是否会导致repaint和reflow?
【问题讨论】:
-
您可以使用 Chrome 的 DevTools 来render paint rectangles around areas that need repainting。如果您想查明是否有什么东西导致了回流,这将非常有帮助,因为您会在更改的元素之外获得绘制矩形。
标签: javascript html css