Javascript $(document).height()在刷新时随机化值(Safari 5.1.10)
我使用Javascript $(document).height()在刷新时随机化值(Safari 5.1.10),javascript,jquery,html,css,safari,Javascript,Jquery,Html,Css,Safari,我使用$(document).height()在块上设置heightCSS属性。这是Safari 5.1.10(OSX 10.6.8)的一个变通方法,因为vh单元(视口高度)在此版本上不起作用 (function() { if(!Modernizr.cssvhunit) $("#sidebar").css("height", $(document).height()+"px"); })(); 问题是,$(document).height()返回的值在每次刷新页面时都不相同。有时是视口的
$(document).height()
在块上设置height
CSS属性。这是Safari 5.1.10(OSX 10.6.8)的一个变通方法,因为vh
单元(视口高度)在此版本上不起作用
(function() {
if(!Modernizr.cssvhunit) $("#sidebar").css("height", $(document).height()+"px");
})();
问题是,$(document).height()
返回的值在每次刷新页面时都不相同。有时是视口的高度,有时是文档的高度,有时是介于两者之间的值
我使用:Modernizr 2.8.3来检测vh
单元支持、jQuery 1.11.0、Lightbox 2.7.1(没有它仍然会出现问题)和Skeleton 2.0.4
我也尝试过这种解决方法,但没有成功:
function getDocHeight() {
var D = document;
return Math.max(
D.body.scrollHeight, D.documentElement.scrollHeight,
D.body.offsetHeight, D.documentElement.offsetHeight,
D.body.clientHeight, D.documentElement.clientHeight
);
}
我不知道是什么导致这个假定的常量变为变量…有时,在一段时间后测量高度和宽度会有所帮助 说明:浏览器中的JS是一个基于evend的前端系统。重复以下步骤:
嗯,它不太优雅,需要额外的努力来编写UI程序,在需要时无法获得尺寸。听起来你可能在页面中的图像仍在加载时获得高度,因此页面仍在扩展
在这种情况下,请尝试在
$(窗口)下获取高度。改为加载(fn)
事件,因为所有图像都应在该点加载。听起来您可能在页面中的图像仍在加载时获取高度,因此页面仍在扩展。尝试获取$(窗口)下的高度。改为加载(fn)
事件,因为所有图像都应在该点加载。这就成功了,谢谢!很高兴它有帮助-我添加了它作为您的答案。它在超时的情况下工作,但是将CSS修改绑定到$(窗口)。load()
事件更精确。Fyeah,图像加载!您可以在HTML/CSS中指定您的img
大小。。。如果你知道的话。
setTimeout(function() {
// get w, h
},1);