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

时间:2011-09-05 18:47:40

标签: jquery dom visibility

使用jQuery,确定特定元素是否可见的最简单方法是什么?我并不是指在当前视口中可见,而是在页面上。

理想情况下,如果元素或其任何祖先具有CSS规则(例如falsedisplay: none),则函数应返回visibility: hidden。无需担心overflow: hidden

4 个答案:

答案 0 :(得分:13)

:visible方法使用is选择器。

if($('elementSelector').is(':visible')){
   //Element is visible
}

答案 1 :(得分:2)

您可以使用is()方法。

$('#element').is(':visible');

答案 2 :(得分:2)

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

另外,值得注意jQuery 1.3.2 changelog的这一部分:

  

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

答案 3 :(得分:0)

http://api.jquery.com/visible-selector/

$('#mydiv').is(":visible");