我想要一个容器元素的高度,包括边距和填充。
当我将鼠标悬停在Chrome开发工具中的元素时,我会获得我正在寻找的值,但是当我使用jQuery $(‘element’)时。我得到一个小得多的价值。
该元素包含一个jQuery轮播(在一个容器中,位置为relative和items position:absolute),可能与之有关系?
提前致谢
解决方法
我经历了这个问题的几次,最好的解决方案,没有使用任何插件或不守规矩的setTimeout功能,是使用钩子到浏览器的onLoad事件。使用jQuery,这样做是这样的:
$(window).load(function(){… outerHeight logic goes here …});
这可以与您的标准$(function(){… code …}完全分开);所以所有其他正常工作的代码不必等到页面上的每一个元素都被加载。
为什么会发生这种情况呢?Chrome具有与Firefox不同的渲染算法,这导致它会在页面上的所有元素完全绘制/显示之前触发onLoad事件,并可用于jQuery选择和检索高度。 setTimeout()将在大部分时间工作,但是您不希望开发一种依赖于大自然盲目的东西 – 谁知道,Chrome中的这个“怪癖”可能会被修复! 原文链接:https://www.f2er.com/jquery/181968.html