Reputation: 525
I was trying to get a list of element's height value but it was returning 0.
I've done some research and saw that in order get element's height, that element must be visible.
But I want to check its height when it's hidden. If its height is bigger than some value use some functions then make it visible. Is there any way to do this?
I mean:
Upvotes: 11
Views: 24617
Reputation: 23943
One way is to clone the object, position the clone far outside the viewport, make it visible, measure the clone, then destroy it.
So you have:
<div id="maybe" style="display: none;">
Something
</div>
Since you're using jQuery, you'd do something like this:
$('#maybe')
.clone()
.attr('id','maybe_clone') // prevent id collision
.css({ // position far outside viewport
'position': 'absolute',
'left': '-1000px'
});
if( $('#maybe_clone').show().height() > 200 ) {
$('#maybe').show();
}
$('#maybe_clone').remove(); // housekeeping
Upvotes: 6
Reputation: 659
Position the object so it is visible to the browser, but not the user: jQuery: Get height of hidden element in jQuery
Upvotes: 0
Reputation: 69905
You can show
the element get the height and then hide it, visually you will not see any difference.
var height = $('elementSelector').show().height();
$('elementSelector').hide();
if(height != <<HeightToCompare>>){
//Code here
}
//Finally make it visible
$('elementSelector').show();
Upvotes: 17