javascript - 如何知道元素是否已在屏幕上完成显示(完成渲染) - Javascript
问题描述
让我们看看是否有人提出了什么。我有以下问题:
我需要使用 javascript 或 jquery 知道元素何时在屏幕上完成显示。
它是一个在屏幕上显示为模式弹出窗口的表格。它有一个主容器 div,其大小与整个 viwport 一样,z-index 为 10000,并显示 flex,以便充当弹出窗口的 div 居中。我需要知道的是表格主体的clientWidth和offsetWidth属性,以确定滚动条的宽度等于offsetWidth - clientWidth,并将此宽度应用于另一个div的右边距。
当表格完成一个javascript函数的填充后,d-flex类被添加到主容器中,以便显示弹出模式窗口。
问题是,直到在屏幕上没有实际看到弹出窗口,它给我的两个属性是相同的,也就是说,没有可见的滚动条。只有当屏幕上出现弹出窗口时,它们才不同,因为有滚动条。仅当弹出窗口已物理显示在屏幕上时,才会出现滚动条。
如果我询问任何可见性属性,他们会告诉我一切都是可见的,但还没有真正显示在屏幕上。
我什至尝试过使用 show 函数的 jQuery 扩展,但它也没有给我需要的结果。
非常感谢您的合作。
问候
解决方案
如果您从不希望两个属性值相同,则可以解决此问题。您可以实现 setInterval 以继续检查属性值:
let x = setInterval(function(){
if (propertyValue1 !== propertyValue2){
clearInterval(x);
//do or trigger any code that you need to here
}
},100)
推荐阅读
- arrays - 将数组存储在数据库 Wordpress 中
- javascript - Javascript - 将分隔文本拆分为列
- c# - c# "is" 与存储在变量中的类型比较 --
- android - 棒棒糖前的矢量可绘制崩溃
- xamarin - 如何在 ViewCellRenderer Xamarin.Forms 中获取按钮单击事件
- azure-devops - VSTS - 测试 -> 运行 -> 查询端点未根据参数进行过滤
- asp.net-core - 具有招摇属性的 CreatedAtRouteResult
- python - python ValueError:解包的值太多(预期....)
- javascript - 允许按钮被点击一次 JavaScript
- javascript - 用调试版本替换 V8 版本的 Chrome