Jquery,.height()在页面刷新时更改,但在加载时未更改

Jquery,.height()在页面刷新时更改,但在加载时未更改,jquery,resize,height,scaling,Jquery,Resize,Height,Scaling,我已经看到了以下主题: 这似乎与我所经历的问题相反。在这种情况下,硬刷新是问题所在,在这种情况下,它是解决方案 由于在设计复杂的web应用程序UI以在不同的监视器高度上工作时遇到一些问题,我决定使用jQUery来改变高度。我最初使用的是百分比高度,但这会导致在点上出现较大的间隙,而使用“最大高度”和“最小高度”则很难将元素拖出上下文。如果不启用JavaScript,应用程序的使用速度要慢得多(尽管它是建立在渐进式增强的基础上的),所以它假设用户会打开它。这是为那些会建议CSS解决方案的人准备的

我已经看到了以下主题:

这似乎与我所经历的问题相反。在这种情况下,硬刷新是问题所在,在这种情况下,它是解决方案

由于在设计复杂的web应用程序UI以在不同的监视器高度上工作时遇到一些问题,我决定使用jQUery来改变高度。我最初使用的是百分比高度,但这会导致在点上出现较大的间隙,而使用“最大高度”和“最小高度”则很难将元素拖出上下文。如果不启用JavaScript,应用程序的使用速度要慢得多(尽管它是建立在渐进式增强的基础上的),所以它假设用户会打开它。这是为那些会建议CSS解决方案的人准备的

由于域不再有效,用于测试此的链接已被删除

问题是,当通过超链接加载页面时,页面大小正确-如果您已打开页面,您应该会看到这一点,在黄/绿框底部和浏览器底部之间大约有30px。然而,刷新它(您可能需要刷新几次),您将看到黄色框从页面底部消失,绿色框延伸以加入它。这只在我的服务器上实时发生-我在本地主机上开发时从未注意到这个错误,因为它没有发生

jquery代码位于sandpit1.1webservices.co.uk/ground-control/examples/scripts/jumpers.js中,具体代码段如下:

function loadResize()
{
 //var window=$(window).height();
 var window=$('div.main').height();
 //window=parseInt(window);
 window-=50;
 $('div.staff ul').css('height',window);
 window-=175;
 $('div.loads').css('height',window);
 window-=150;
 $('div.loads div.list').css('height',window);
}
您可以看到,我已经对一些内容进行了注释,并且在实际的测试代码中还有更多内容。当窗口高度在测试开始时发出警报时,在我的浏览器上显示为885(1024倍屏幕高度),但是刷新会给出1133和1785之间的随机值。进行硬刷新或页面加载,然后返回到885。该函数在文档末尾调用。就绪:

$(window).resize(loadResize);
loadResize();
我曾经有调整大小事件触发器本身,但删除了它,以防它引起的问题


有什么想法吗?

试着把它写成$(函数loadresize(){并以}结尾)

我最终解决了这个问题,将
loadResize()
函数从
$(document).ready()
事件移动到
$(window.load()
事件。这是正确的,因为DocumentReady在构建DOM之后但在下载其他元素之前启动。因此,图像和自定义字体(都在页面上)等项目会影响大小计算-取决于网络速度和当时加载的内容,第一个事件会给出不同的高度。

我也有同样的问题$(document).ready()将导致htmltablecellelement的高度和宽度值在我将其输出到console.log时在两组值之间随机更改。更改为$(window).load()导致值保持不变。谢谢我在使用TypeKit时也遇到了同样的问题。在某些情况下,异步字体加载似乎可以稍微改变元素的高度。