如何检测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;