如何确定特定的DOM元素是否可见?

7
使用jQuery,最简单的方法是确定特定元素是否可见?我不是指在当前视口内可见,而是在页面上可见。
理想情况下,如果元素或其任何祖先具有诸如"display:none"或"visibility:hidden"等CSS规则,则函数应返回false。不必担心"overflow:hidden"。

2
开玩笑吧?你刚才尝试过在Google或Stack Overflow中搜索“jquery元素是否可见?”了吗? - Roko C. Buljan
4个回答

13
使用带有 is 方法的 :visible 选择器。
if($('elementSelector').is(':visible')){
   //Element is visible
}

2
您可以使用 is() 方法。
$('#element').is(':visible');

2

$('div:visible'); 将返回所有可见的 div

此外,值得注意的是 jQuery 1.3.2 的 changelog 中的这一部分:

在 jQuery 1.3.2 中,如果元素的浏览器报告的 offsetWidthoffsetHeight 大于 0,则该元素是可见的。这意味着,如果您的元素的 CSS 显示为 "none",或任何父/祖先元素的显示为 "none",或者元素的宽度为 0 且元素的高度为 0,则该元素将被报告为隐藏。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接