如何使用javascript检查visibility属性

Sta*_*ano 4 javascript css properties

我测试了以下div的可见性:

<div id="div1">div</div>
Run Code Online (Sandbox Code Playgroud)

单独定义的样式

#div1 {
    visibility:visible; //or hidden
}
Run Code Online (Sandbox Code Playgroud)

如果样式是内联定义的,<div id="div1" style="visibility:visible">div</div>那么很容易检查element.style.visibility属性中的可见性.但问题是风格是单独定义的(如上图所示 - #div1,.div1或div).

那么在哪里可以使用纯javascript检查visibility属性?jQuery每次都返回正确的样式(我不知道如何跟踪它),那么他们是如何做到的呢?这是我的不成功尝试的一个小提琴,除了jQuery的工作之外没有测试:

alert($(el).css('visibility')); // jQuery works well - returns correct property
alert(el.style.visibility); // not works - always empty string
alert(el.offsetWidth > 0 || el.offsetHeight > 0 ? 'yes':'no'); // also not working - always true - http://stackoverflow.com/questions/1343237/how-to-check-elements-visibility-via-javascript
alert(el.getComputedStyle); // undefined - http://stackoverflow.com/questions/4795473/check-visibility-of-an-object-with-javascript
alert(el.getAttribute('visibility')); // not works - of course null
Run Code Online (Sandbox Code Playgroud)

关于如何成功的任何想法?在最新的Firefox 15中测试过.

Rob*_*b W 6

getComputedStyle是一种全球性的方法.使用方法如下:

window.getComputedStyle(el, null).getPropertyValue('visibility');
Run Code Online (Sandbox Code Playgroud)