首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jquery中检测文档大小更改

问如何在jquery中检测文档大小更改
EN

Stack Overflow用户
提问于 2011-04-04 04:55:27
回答 3查看 34.4K关注 0票数 15

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

如何使用jquery检测发生的类似情况?

将调整大小事件绑定到窗口仅检测窗口调整大小,而将其绑定到文档不起作用

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-04 05:06:32

更新:

请不要使用DOMSubtreeModified事件。它是旧的,已被弃用,并且没有得到浏览器的很好支持。在99.9%的情况下,你可以听到不同的事件。你很可能是那些使用jQuery和做一些AJAX东西的人中的一员,所以请看看他们的AJAX docs。

These都是可用的事件。您必须检测$(document).bind('DOMSubtreeModified', function() { ... });并检查对上一次触发的尺寸更改。

代码语言:javascript
复制
var height = $(this).height(),
    width  = $(this).width();
$(document).bind('DOMSubtreeModified', function() {
    if($(this).height() != height || $(this).width() != width) {
        recalibrate();
    }
});

此事件将在每次 time 对DOM执行的任何操作时触发。因此it 会减慢你的浏览器的速度。

我们应该找个更好的替代方案。您能给我们更多关于您的场景的信息吗?

票数 18
EN

Stack Overflow用户

发布于 2017-11-09 08:17:43

以下是解决方案。

代码语言:javascript
复制
// ajdust margins when page size changes (ie rotate mobile device)
$(window).resize(function() {
  // Do something more useful
  console.log('doc height is ' + $(window).height());
});
票数 0
EN

Stack Overflow用户

发布于 2011-04-04 10:47:16

您可以尝试一个百分比滚动事件,如下所示:http://www.jquery4u.com/snippets/jquery-detect-scrolled-page/

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

代码语言:javascript
复制
var hasVScroll = document.body.scrollHeight > document.body.clientHeight;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5532453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档