Estoy trabajando en un proyecto de diseño fluido. Tengo algunos DIV de altura fija en mi documento, y las alturas son diferentes para todos ellos. Necesito cambiar proporcionalmente la altura de estos DIV en el tamaño del navegador. Aquí está el marcado.jQuery cambia dinámicamente la altura del elemento
<body>
<div id="a" class="target"></div>
<div id="b" class="target"></div>
<div id="c" class="target"></div>
</body>
y 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>
parece fácil! La condición principal es que i no conozco la cantidad de precinto de DIV objetivo y sus ID, es por eso que estoy usando .each (función()). Aquí es guión que escribió:
$(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);
});
});
Este script funciona perfectamente cuando el usuario recarga la página. ¿Cómo puedo obtener los mismos resultados dinámicamente cuando el usuario cambia el tamaño del navegador sin volver a cargarlo? Sé que debería aplicar $ (window) .resize event listener. Pero el problema es que la altura inicial del DIV se calculará dentro del evento y el resultado será similar al del bucle sin fin, es decir, la altura final aumentará o disminuirá en una progresión enorme. ¡No necesito eso! ¿Cómo puedo hacer cada cálculo de altura inicial DIV fuera de la función de evento y luego utilizar estas alturas dentro de la función de evento? ¿O puede haber otro enfoque para obtener el mismo resultado?
Solución realmente rápida y fácil. Funciona perfectamente. ¡Gracias! – theCoder