有什么方法可以检查一个元素在纯 JS(没有 jQuery)中是否可见?
那么,给定一个 DOM 元素,我如何检查它是否可见?我试过了:
window.getComputedStyle(my_element)['display']);
但它似乎没有工作。我想知道我应该检查哪些属性。我想到了:
display !== 'none'
visibility !== 'hidden'
还有其他我可能会想念的吗?
原文由 Hommer Smith 发布,翻译遵循 CC BY-SA 4.0 许可协议
根据 这个 MDN 文档,当一个元素或其任何父元素通过显示样式属性隐藏时,它的
offsetParent
属性将返回null
。只要确保元素没有固定。一个脚本来检查这个,如果你没有position: fixed;
页面上的元素可能如下所示:另一方面,如果您 确实 有可能在此搜索中被捕获的位置固定元素,那么您将遗憾地(并且慢慢地)不得不使用
window.getComputedStyle()
。这种情况下的功能可能是:选项 #2 可能更简单一些,因为它考虑了更多的边缘情况,但我敢打赌它也会慢很多,所以如果你必须多次重复这个操作,最好避免它。