获取隐藏元素的偏移量

Sim*_*mon 39 jquery hidden offset

如何获取隐藏元素的坐标?offset()不支持隐藏元素的使用.任何提示?

iss*_*eng 48

如果您的元素已经.hide()调用它,或者它已经display:none在css中,则浏览器根本不会对它进行渲染.在这种情况下,答案不是直接的.在最近的jQueries中,你甚至无法获得它的宽度或高度.

另一方面,如果你.show()是一个元素,那么.hide()它在执行循环之前(一个事件触发到没有更多代码为该事件运行的时候),浏览器将被强制重新布局页面,你将能够获得它在显示和隐藏之间的偏移,但它不会被强制重绘,因此你的用户不会看到昙花一现,你不会失去你想象的那么多的性能.

  • 不.也许在较旧的浏览器中,但现代浏览器将重新布局但不重新绘制,直到绝对必须.这是我运行的测试:http://pastie.org/1892044以及Chrome Inspector产生的时间表:https://skitch.com/cxlt/r67h3/developer-tools-file-tmp-test.html正如您所看到的,必须布局和重新计算样式,但它不会重新绘制屏幕,​​直到它已经完成了`show()`,度量和`hide()`. (4认同)

c-s*_*ile 32

您可以获取visibility:hidden元素的坐标,但display:none元素将从渲染树中排除.所以它的立场是不确定的.

  • 这实际上是正确的答案.此外,由于visibility:hidden占用空间,您还可以为DIV的CSS添加position:absolute,这将使其真正不可见(因为它不再占用任何布局空间).干杯. (3认同)