2011-09-05 124 views
6

使用jQuery,确定某个特定元素是否可见的最简单方法是什么?我不是指在当前视口内可见,而是在页面上。如何确定一个特定的DOM元素是否可见?

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

+2

开玩笑吧?你只是试图谷歌/或/ SOVERflow搜索“jquery元素是可见或不? –

回答

11

使用:visible选择器与is方法。

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

您可以使用is()方法。

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

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

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

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

相关问题