I am working on a liquid layout project. I have some fixed DIV heights in my document, and the heights are the same for everyone. I need to proportionally change this DIV height to browser size. Here is the markup.
<body> <div id="a" class="target"></div> <div id="b" class="target"></div> <div id="c" class="target"></div> </body>
And css:
<style> body { width: 90%; margin: 0 auto;} .target { width:30%; float:left; margin:1.6%; cursor:pointer; } #a { height: 200px; background-color: yellow;} #b { height: 400px; background-color: green;} #c { height: 600px; background-color: grey;} </style>
It sounds easy! The main condition is that I do not know the size of the target DIV and their identifiers , so I use .each (function ()). Here is the script I wrote:
$(document).ready(function(){ //set the initial body width var originalWidth = 1000; /*I need to go through all target divs because i don't know how many divs are here and what are their initial height*/ $(".target").each(function() { //get the initial height of every div var originalHeight = $(this).height(); //get the new body width var bodyWidth = $("body").width(); //get the difference in width, needed for hight calculation var widthDiff = bodyWidth - originalWidth; //new hight based on initial div height var newHeight = originalHeight + (widthDiff / 10); //sets the different height for every needed div $(this).css("height", newHeight); });
});
This script works great when the user reloads the page. How can I get the same results dynamically when the user resizes the browser without rebooting? I know that I should use the $ (window) .resize event listener. But the problem is that the initial DIV height will be calculated inside the event, and the result will be the same as an infinite loop, i.e. the final height will increase or decrease in huge progression. I do not need it! How can I do each DIV initial height adjustment outside the event function, and then use these heights inside the event function? Or maybe there is another aproach to get the same result?
jquery height window-resize
theCoder
source share