因此,假设单击某个内容会导致新内容被加载到屏幕上,因此文档的高度会发生变化,而以前没有滚动条,现在实际上有了滚动条……
如何使用jquery检测发生的类似情况?
将调整大小事件绑定到窗口仅检测窗口调整大小,而将其绑定到文档不起作用
发布于 2011-04-04 05:06:32
更新:
请不要使用DOMSubtreeModified事件。它是旧的,已被弃用,并且没有得到浏览器的很好支持。在99.9%的情况下,你可以听到不同的事件。你很可能是那些使用jQuery和做一些AJAX东西的人中的一员,所以请看看他们的AJAX docs。
These都是可用的事件。您必须检测$(document).bind('DOMSubtreeModified', function() { ... });并检查对上一次触发的尺寸更改。
var height = $(this).height(),
width = $(this).width();
$(document).bind('DOMSubtreeModified', function() {
if($(this).height() != height || $(this).width() != width) {
recalibrate();
}
});此事件将在每次 time 对DOM执行的任何操作时触发。因此it 会减慢你的浏览器的速度。
我们应该找个更好的替代方案。您能给我们更多关于您的场景的信息吗?
发布于 2017-11-09 08:17:43
以下是解决方案。
// ajdust margins when page size changes (ie rotate mobile device)
$(window).resize(function() {
// Do something more useful
console.log('doc height is ' + $(window).height());
});发布于 2011-04-04 10:47:16
您可以尝试一个百分比滚动事件,如下所示:http://www.jquery4u.com/snippets/jquery-detect-scrolled-page/
您可能需要添加检查以查看是否存在垂直滚动条:
var hasVScroll = document.body.scrollHeight > document.body.clientHeight;https://stackoverflow.com/questions/5532453
复制相似问题