你做的一切都是正确的,你没有得到你应该得到的价值观。这不是 jQuery 应该表现的方式。
在这一页中,我测试了您调用的函数以查看它们的值。它们确实准确地代表了我窗口中可见页面的实际宽度和高度。这是结果。
Chrome,带有标准的开发控制台
Firefox,带有 Firebug
你那边出了点问题
jQuery$(window).height()
应该显示可见的视口。请参阅有关jQuery 高度函数的文档:
此方法还能够找到窗口和文档的高度。
$(window).height(); // returns height of browser viewport
$(document).height(); // returns height of HTML document
window.height
是事物可以干扰的可设置值,但$(window).height()
不受对其更改的影响。
究竟出了什么问题?
无论发生什么,无论你调用什么函数,你都没有调用 jQuery 的$(window).height()
.
使用浏览器的开发人员控制台,在您调用的行上放置一个断点$(window).height()
并单步执行函数调用。当你打电话的时候实际上是在叫什么$(window).height()
?你需要找出这个。
有人用新的或更好的函数替换了高度函数吗?
我的一个强烈怀疑是你正在使用的代码库的某些部分已经完成了这个:
// Replace jQuery's height function with a better one to fix bug XYZ
$(window).height = function brandNewHeightFunction() {
return someVeryWrongValue;
};
如果是这样,当你进入高度函数时,它实际上可能不是进入了jQuery库的一部分,而是你自己的库的另一部分。找出它的必要性,看看你能做些什么。如果您只是删除此功能,则依赖于它以这种方式工作的其他东西可能会开始破坏。
有人去修改/定制了你的 jQuery 库吗?
尽可能检查是否发生了这种情况,以及任何可用的历史工具。您使用的是什么版本的 jQuery?如果可能,从 jQuery 站点下载相同的代码,并查看当您进入窗口高度函数时看到的代码与您在此处看到的代码相同。
重新下载 jQuery 并引用它。如果您的窗口高度功能突然开始工作,则可能有人这样做了。找出为什么这是定制的。如果您对其进行修复,则取决于此行为的其他东西可能会开始损坏。