I'm having an issue identical to this poster: Jquery problem with height() and resize()
But the solution doesn't fix my issue. I have three stacked divs, and I want to use JQuery to make the middle one adjust in height to 100% of the window height, minus the height (23px * 2) of the other top & bottom divs. It works on resize, but it's off (short) by 16px when the document initially loads.
HTML
<body> <div id="bg1" class="bg">top</div> <div id="content">     help me. seriously. </div> <div id="bg2" class="bg">bottom</div> </body>   CSS
html, body {     width:100%;     height:100%; }  .bg { width:315px; height:23px; margin:0 auto; text-indent:-9000px; }  #bg1 {background:url(../images/bg1.png) 0 50% no-repeat;} #bg2 {background:url(../images/bg2.png) 0 50% no-repeat;}  #content { width:450px;  margin:0 auto; text-align: center; }   JQuery
$(document).ready(function(){     resizeContent();      $(window).resize(function() {         resizeContent();     }); });  function resizeContent() {     $height = $(window).height() - 46;     $('body div#content').height($height); } 
                jQuery resize() Method The resize event occurs when the browser window changes size. The resize() method triggers the resize event, or attaches a function to run when a resize event occurs.
Hope this helps. Basically, $(window). height() give you the maximum height inside of the browser window (viewport), and $(document). height() gives you the height of the document inside of the browser.
The content height of a div can dynamically set or change using height(), innerHeight(), and outerHeight() methods depending upon the user requirement.
I feel like there should be a no javascript solution, but how is this?
http://jsfiddle.net/NfmX3/2/
$(window).resize(function() {     $('#content').height($(window).height() - 46); });  $(window).trigger('resize'); 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With