如何检测jquery中的文档大小更改

所以假设单击某些内容会导致新内容被加载到屏幕上,因此文档的高度会发生变化,而之前没有滚动条,现在实际上有滚动条…

我如何检测使用jquery发生的事情

绑定resize事件到窗口只检测窗口resize,而将其绑定到文档不起作用

更新:
请不要使用DOMSubtreeModified事件。 它已经过时,已弃用且浏览器不支持。 在99.9%的案例中,您可以收听不同的事件。 很可能你是那些使用jQuery并做一些AJAX的人之一,所以请看看他们的AJAX文档 。


这些都是可用的活动。 你必须检测$(document).bind('DOMSubtreeModified', function() { ... }); 并检查上一次触发的尺寸变化。

 var height = $(this).height(), width = $(this).width(); $(document).bind('DOMSubtreeModified', function() { if($(this).height() != height || $(this).width() != width) { recalibrate(); } }); 

每次对DOM执行任何操作时,此事件都会触发。 因此它减慢您的浏览器。

我们应该有更好的选择。 您能否向我们提供有关您的方案的更多信息?

这是解决方案。

 // ajdust margins when page size changes (ie rotate mobile device) $(window).resize(function() { // Do something more useful console.log('doc height is ' + $(window).height()); }); 

您可以尝试像这样的百分比滚动事件: http : //www.jquery4u.com/snippets/jquery-detect-scrolled-page/

您可能需要添加一个检查以查看是否存在垂直滚动条:

 var hasVScroll = document.body.scrollHeight > document.body.clientHeight;