Useful jQuery toggle visibility methods.
Or you may check if element is visible or hidden with jQuery. Hide or show it according to its visibility.
Test code:
html:
<div class="wrap-js-action">
<span class="click js-action">click to show or hide (display:block|none;)</span>
</div>
<div class="target">target</div>
<div class="wrap-js-action">
<span class="click-toggle js-action">click to show or hide by toggle (display:block|none;)</span>
</div>
<div class="target-toggle">target toggle</div>
<div class="wrap-js-action">
<span class="click-visibility js-action">click to show or hide (visibility:hidden|visible)</span>
</div>
<div class="target-visibility">target visibility</div>
<div class="wrap-js-action">
<span class="click-opacity js-action">click to show or hide (opacity:0|1)</span>
</div>
<div class="target-opacity">target opacity</div>
<div>last line</div>
jQuery:
$('.click').click(function () {
if ($('.target').is(':hidden')) {
$('.target').show();
} else {
$('.target').hide();
}
});
$('.click-toggle').click(function () {
$('.target-toggle').toggle();
});
$('.click-visibility').click(function () {
if ($('.target-visibility').css('visibility') == 'hidden') {
$('.target-visibility').css({
'visibility': 'visible'
});
} else {
$('.target-visibility').css({
'visibility': 'hidden'
});
}
});
$('.click-opacity').click(function () {
if ($('.target-opacity').css('opacity') == '0') {
$('.target-opacity').css({
'opacity': '1'
});
} else {
$('.target-opacity').css({
'opacity': '0'
});
}
});
css:
.js-action {
cursor: pointer;
border-bottom: 1px dashed #555;
}
.wrap-js-action {
margin: 15px 0 0 0;
}
Difference between "display:none", "visibility:hidden" and "opacity:0":
- display:none hides the element and it does not take up any space;
- visibility:hidden hides the element, but it still takes up space in the layout;
- opacity:0 hides the element as "visibility:hidden" and it still takes up space in the layout; the only difference is that opacity let to do element partly transparent;
Another difference between visibility:hidden and opacity:0 is that the element will still respond to events (like clicks) with opacity:0.
Your post is good but these attribute doesn't work when visibility=hidden is used to hide the element. I faced this situation and after sometime got the solution as well. So thought of sharing with you.
http://jquerybyexample.blogspot.in/2012/02/how-to-check-element-visible-or-hidden.html
thanks for feedback,
I've updated article by adding "visibility:hidden" and "opacity:0" examples.