获取元素的offsetHeight是否会产生副作用



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

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

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

一些旧浏览器,如旧版本的IE,在执行某些操作后有时会出现无法重新刷新(重新呈现演示文稿)的问题。

频繁查询某些属性(如offsetHeight)会迫使DOM重新计算并重新绘制屏幕上的对象。

因此,副作用是迫使屏幕回流(重新绘制)。古怪,但这是旧浏览器的老把戏。

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

这里有一个来自引导团队的有用评论:

if (doAnimate) this.$backdrop[0].offsetWidth // force reflow

最新更新