获取元素的 offsetHeight 有副作用吗?
Does getting the offsetHeight of an element have a side effect?
在 Bootstrap 崩溃的代码中,在 hide()
方法中,我看到以下行:
this.$element[dimension](this.$element[dimension]())[0].offsetHeight
我不明白最后 .offsetHeight
的意义是什么,除非它有副作用,因为它没有被分配给任何东西。有副作用吗?
一些旧浏览器,如旧版本的 IE,在执行某些操作后有时会出现不重排(重新呈现演示文稿)的问题。
Mearly 查询某些属性,如 offsetHeight
会强制 DOM 重新计算并重绘屏幕上的对象。
所以,副作用是强制重排(重绘)屏幕。古怪,但对旧浏览器来说是一个老把戏。
这里是 a question where this is suggested as a solution 旧版本 Google Chrome 没有它就无法正常工作。
这是来自 bootstrap 团队的有用评论:
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
在 Bootstrap 崩溃的代码中,在 hide()
方法中,我看到以下行:
this.$element[dimension](this.$element[dimension]())[0].offsetHeight
我不明白最后 .offsetHeight
的意义是什么,除非它有副作用,因为它没有被分配给任何东西。有副作用吗?
一些旧浏览器,如旧版本的 IE,在执行某些操作后有时会出现不重排(重新呈现演示文稿)的问题。
Mearly 查询某些属性,如 offsetHeight
会强制 DOM 重新计算并重绘屏幕上的对象。
所以,副作用是强制重排(重绘)屏幕。古怪,但对旧浏览器来说是一个老把戏。
这里是 a question where this is suggested as a solution 旧版本 Google Chrome 没有它就无法正常工作。
这是来自 bootstrap 团队的有用评论:
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow