2011-01-25 56 views
3

我有一個名爲「object」的變量。如何檢查JavaScript是否可見?使用JavaScript檢查對象的可見性

我試過了!object.getAttribute(「dislay」,「none」)...但這不起作用。

有人可以幫我嗎?

謝謝!

$(object).is(':visible'); 

如果沒有,你可以嘗試這些:

if (object.style['display'] != 'none') 

但這種方法僅當display:none

回答

8

如果你使用jQuery,下面將如果對象是可見返回true被明確設置在這個對象上。

+0

+1:儘管我通常反對在陽光下的每個JavaScript問題上拋出jQuery,尤其是對於渲染問題,IMO完全不值得重新創造輪子,而不必重新發明輪子。 – 2011-01-25 15:52:20

0

看起來你不正確地使用getAttribute方法。試試看看this

0

這裏的工作版本:http://jsfiddle.net/PEA4j/

<html> 
<head> 
    <script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.4.4.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(function() { 
      alert("Is #foo1 visible: " + $("#foo1").is(":visible") + "\nIs #foo2 visible: " + $("#foo2").is(":visible")); 

     }); 
    </script> 
</head> 
<body> 
<div id="foo1" style="display:none">foo1 display none</div> 
<div id="foo2">foo2 no display property;</div> 
</body> 
</html> 
1
if (object.style.visibility <> 'visible' || object.style.display == 'none') 

如果它不工作,嘗試使用

if (object.currentStyle.visibility <> 'visible' || object.currentStyle.display == 'none') 
1

要使用可以使用JavaScript得到的顯示風格的價值:

IE:

document.getElementById('mydiv').currentStyle.display 
or 
object.currentStyle.display 

其他:

document.getElementById('mydiv').getComputedStyle('display') 
or 
object.getComputedStyle('display') 
+0

有了這個,我得到:``Uncaught TypeError:Object#沒有方法'getComputedStyle'「`。 – 2016-02-17 23:16:52

12
function isvisible(obj) { 
    return obj.offsetWidth > 0 && obj.offsetHeight > 0; 
} 

,因爲它是在JQuery中實現。

+0

nom nom nom。香草JS非常好! – 2015-09-26 21:15:08