【问题标题】:$(document).width() not updating on browser resize?$(document).width() 不会在浏览器调整大小时更新?
【发布时间】:2013-04-21 08:11:07
【问题描述】:

我发现当我调整窗口大小(各种浏览器)时,$(document).width() 经常不会更新。这是一个已知问题,还是正在发生一些奇怪的事情?如果是已知问题,有什么解决方法?

编辑:突然之间(就像变魔术一样)完全相同的页面的文档宽度正在更新,但它不一致。例如,我让页面变宽了,警告告诉我宽度说它变小了。 (这发生在 Firefox 中)

【问题讨论】:

  • 您所描述的问题(document 的宽度()报告不一致的结果)可能是由于...document 的实际宽度变化不一致(如 JS 的问题,有时会改变宽度,有时不会)。我经历过例如。最近,其他人的代码具有元素调整大小、AJAX 调用和setTimeout 的奇怪组合(根据在调用setTimeout 回调之前是否返回了 AJAX 调用,它们共同导致了不同的结果)。

标签: jquery resize document


【解决方案1】:

试试$(window).width(),因为这就是你要找的。​​p>

您可以看到不同之处,例如。通过看官方jQuery's .width() documentation

$(window).width();   // returns width of browser viewport
$(document).width(); // returns width of HTML document

【讨论】:

  • 不,不是。我需要文档宽度,因为它需要包含滚动条覆盖的空间。窗口是视口的大小。
  • @Mr.Lavalamp:根据您的问题,我假设您在询问视口。文档未调整到窗口可能有几个不同的原因 - 例如可能是仅在页面加载时调整 JS 中的样式的结果。您是否检查并 100% 肯定文档的宽度发生变化是您提到的情况?
  • 是的。背景环绕设置为 100% 宽度,因此它 - 应该 - 调整大小。 ://
  • @Mr.Lavalamp:我理解应该,但到目前为止似乎没有(原因可能是多方面的)。尝试重现该问题并使用 Firebug(在 Firefox 中)或开发工具(Chrome/Chromium)检查,在这种情况下此类工具报告的文档宽度是多少。它可能会让您了解document 是否只是没有调整大小(很可能)或width() 报告的值不正确(发生这种情况的可能性要小得多)。
猜你喜欢
  • 2012-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-31
  • 1970-01-01
  • 1970-01-01
  • 2010-10-26
  • 1970-01-01
相关资源
最近更新 更多