为什么仅仅因为我设置了“setInterval”函数,它就显示不同的“clientWidth”值
Why it shows different “clientWidth” value just because I set the “setInterval” function?
我试图获取clientWidth
值以了解主体的宽度。但我发现了一个问题:
以下是原始代码:
<input type="text" id="width"><br/>
<input type="text" id="height">
<script>
function getScreenSize(){
document.getElementById("width").value= document.body.clientWidth;
document.getElementById("height").value= document.body.clientHeight;
}
getScreenSize();
</script>
<div style="margin-top: 5300px;">foot</div>
当我只将getScreenSize();
更改为setInterval("getScreenSize()",10);
时,如下所示:
<input type="text" id="width"><br/>
<input type="text" id="height">
<script>
function getScreenSize(){
document.getElementById("width").value= document.body.clientWidth;
document.getElementById("height").value= document.body.clientHeight;
}
setInterval("getScreenSize()",10);
</script>
<div style="margin-top: 5300px;">foot</div>
在没有任何原因的情况下,clientWidth
的值发生了变化。
有人知道为什么仅仅因为我设置了setInterval
函数就改变了吗?
之所以会发生这种情况,是因为如果没有setInterval,script
会在添加底部的div
之前运行。
因此,当浏览器读取页面时,它会运行脚本,然后添加底部div,在运行时,宽度和高度不考虑div
。对于setInterval
,它说明了div
。
将脚本移到底部将从两个方向显示相同的响应。
<input type="text" id="width"><br/>
<input type="text" id="height">
<div style="margin-top: 5300px;">foot</div>
<script>
function getScreenSize(){
document.getElementById("width").value= document.body.clientWidth;
document.getElementById("height").value= document.body.clientHeight;
}
getScreenSize();
</script>
您的脚本可能在页面完全呈现之前就已经运行,因此页面的大小实际上可能会发生变化。您需要确保您的代码在DOM(文档对象模型)完成后运行(有关更多信息,请参阅window.onloadvs$(Document).ready())。
相关文章:
- 从桌面读取python文件时高亮显示代码
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何在生成下载文件时显示加载动画
- React重新渲染但未显示正确的组件
- nodejs-expressjs上传图像并显示它们
- 使用JSP从服务器检索和显示图像
- 音频控件在mouseover上显示,在mouseout上淡出
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 显示5秒后隐藏潜水
- 画廊图像未显示
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 高亮显示时编辑文本大小和颜色
- 有时数据是't显示在浏览器中
- 当鼠标悬停在文本中的单词上时显示警报
- 角度图表;t显示在我的页面中
- 为什么仅仅因为我设置了“setInterval”函数,它就显示不同的“clientWidth”值