jQuery
You can say:
$(element).is(':visible')
and
$(element).is(':hidden')
jQuery considers an element to be visible if it consumes space in the document. For most purposes, this is exactly what you want.
Native DOM API
Emulate jQuery's implementation Show archive.org snapshot :
element.offsetWidth > 0 && element.offsetHeight > 0;
jQuery > 3
Query 3 slightly modifies the meaning of :visible (and therefore of :hidden).
Emulate jQuery's implementation:
!(window.getComputedStyle(element).display === "none")
Prototype
Don't use Element#visible()
, it just checks if a CSS attribute display: none
exists. This is too naive for most cases.
Emulate jQuery's implementation Show archive.org snapshot instead:
element.offsetWidth > 0 && element.offsetHeight > 0;
Or maybe you'd even like to patch Prototype so it behaves like jQuery:
Element.addMethods({
visible: function() {
return offsetWidth > 0 && offsetHeight > 0;
}
});
Posted by Henning Koch to makandra dev (2011-07-08 11:52)