获取元素的 offsetHeight 是否有副作用?

And*_*ndy 3 javascript dom side-effects offsetheight

在 Bootstrap 崩溃的代码中,在hide()方法中,我看到以下行:

this.$element[dimension](this.$element[dimension]())[0].offsetHeight

我不明白最后的意义.offsetHeight是什么,除非它有副作用,因为它没有被分配给任何东西。它有副作用吗?

Ben*_*aum 6

某些旧浏览器(例如旧版 IE)有时会出现执行某些操作后无法回流(重新渲染演示文稿)的问题。

仅仅查询一些属性,例如offsetHeight强制 DOM 重新计算并重绘屏幕上的对象。

因此,副作用是强制屏幕回流(重绘)。很奇怪,但对于旧浏览器来说是一个老技巧。

这是一个问题,建议将此作为旧版本 Google Chrome 的解决方案,如果没有它,它就无法正常工作。

  • 不仅是“一些旧浏览器”,而是所有浏览器。如果不确保渲染树是最新的,则无法获得有效的 offsetHeight。 (2认同)