页面加载时 ClientHeight 和 ScrollHeight 的值错误

Wrong Value for ClientHeight and ScrollHeight on Page Load

提问人:4Matt 提问时间:11/17/2023 最后编辑:4Matt 更新时间:11/17/2023 访问量:31

问:

我正在尝试将 scrollHeight 与元素的 clientHeight 进行比较,以查看其内容是否溢出,以便有条件地呈现按钮。但是,当我在window.onload()中进行此比较检查时,我得到了这些属性的错误值。我知道这些值是错误的,因为......1. 当内容明显溢出并且......2. 当我让页面加载并在浏览器控制台中运行以下命令时... 并且,我得到了正确的值。非常感谢任何关于为什么在window.onload函数期间值不正确的见解。谢谢。$($0).prop("scrollHeight")$($0).prop("clientHeight")

$(window).on("load", function () {
        console.log("client height: " + $("#elementID").prop('clientHeight')); //Wrong Value
        console.log("scroll height: " + $("#elementID").prop('scrollHeight')); //Wrong Value
});

在浏览器控制台中输出相同的属性会显示正确的值

Chrome 开发者控制台...

$($0).prop("scrollHeight") //Correct Value

$($0).prop("clientHeight") //Correct Value

似乎加载函数在以某种方式加载所有内容之前运行?

JavaScript HTML CSS

评论

0赞 Brett Donald 11/17/2023
尝试在本机 Javascript 中执行此操作。
0赞 4Matt 11/17/2023
@BrettDonald我尝试了上述两个建议。两者都不起作用,这很奇怪......我重新加载它的一半时间具有正确的 scrollHeight 和 clientHeight,另一半是错误的,即使视图完全相同,而且这没有调整屏幕大小或做任何不同的事情,只是简单的重新加载。出于测试目的,我的元素的内容被设置为溢出。
0赞 Brett Donald 11/17/2023
尝试等待页面加载,然后通过将逻辑放入 setTimeout() 中再等待 50 毫秒。

答: 暂无答案