在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