sobre los <DIV>
mi cuestion:
puedo tener acceso a la altura de una div??
me explico, si a un <div> lepongo en los estilos "height:loquesea en px" y luego accedo a el con:
<code>altura=document.getElementById('elDiv').style.height;</code>
me devuelve como altura el numero de pixels k yo le he puesto, pero si a esa <div> no le defino la altura ¿como la puedo saber??
por ejemplo:
<code><div id="elDiv">
hola<br>
hola<br>
hola<br>
</div></code>
tendra una altura aunque no este definida digo yo (?)
he probao con:
<code>altura=document.getElementById('elDiv').style.height;
altura=document.getElementById('elDiv').height;
altura=document.all('elDiv').height;</code>
pero nada, o undefined o nada...
¿se puede saber de alguna forma?? nose si me he explicao bien
un saludo.
Jorge
txuma Plus
Claro que es posible... Te acabo de preparar este ejemplo rápido. Échale un vistazo y entenderás cómo funciona. Si tienes alguna duda, pregúntame.
Un saludo
<code>
<html>
<head>
<title>Obteniendo propiedad HEIGHT</title>
<script language="JavaScript" type="text/JavaScript">
function calcular (ID) {
document.write(document.getElementById(ID).style.height);
}
</script>
</head>
<body>
<div id="capa" style="position:absolute; left:150px; top:150px; width:200; height:300;"></div>
<a href="#" onClick= "calcular('capa');">calcula</a>
</body>
</html></code>
sgiraldo
txuma, fíjate que en el mensaje pone si no se define el height en el style del div
Josh
prueba elemento.offsetHeight
txuma Plus
sgiraldo
txuma, fíjate que en el mensaje pone si no se define el height en el style del div
No me había percatado de ese detalle. eso pasa por leer a toda leche :oops:
meddle
no es tan facil, IE/mozilla leen valores distintos, pero se puede hacer. He modificado a lo cutrelux esto de la api de 13thparallel, lo he hecho rapido y sin comprobar ni optimizar, dime que tal, se puede hacer mas corto:
<code><html>
<head>
<title>Test</title>
<script type="text/javascript">
// <![CDATA[
function getW(lyr) {
if (document.getElementById(lyr).offsetWidth){ return document.getElementById(lyr).offsetWidth;}
else if (parseInt(document.getElementById(lyr).style.width)) {return parseInt(document.getElementById(lyr).style.width);}
else return 0;
}
function getH(lyr) {
if (document.getElementById(lyr).offsetHeight){ return document.getElementById(lyr).offsetHeight;}
else if (parseInt(document.getElementById(lyr).style.height)) {return parseInt(document.getElementById(lyr).style.height);}
else return 0;
}
function init(){
alert(getH("divSizer"))
}
onload=init;
// ]]>
</script>
</head>
<body>
<div id="divSizer">
Hola<br>Hola<br>Hola<br>Hola<br>
</div>
</body>
</html></code>
Alter Ebro
funciona!
he probado la opcion josh y la opcion meddle en varios navegadores y las dos opciones me dan el mismo numero, aunque si k es verdad k segun el navegador ese numero es diferente.
me quedo con la opcion josh :P
ok gracias camaradas
txuma Plus
Estoy probando la opción Josh y me da undefined....
Alter Ebro
y eso porque? por el sistema operativo quiza?? :(
yo estoy con windows2000.
he puesto lo siguiente en la opcion meddle:
<code>function init(){
altura=document.getElementById('divSizer').offsetHeight;
alert(getH("divSizer")+"\n"+altura);
}</code>
lo he probao en IE6, firebird, opera6.05 y netscape7.0
y funciona
meddle
¿funciona en ns6? no lo tengo por aqui y estoy curioso.
Alter Ebro
aqui en mi casa tengo el 6.2 y si k va.
meddle
uy, creo que el motor cambio sustancialmente desde el 6.0 al 6.2, habria que ver si offsetHeight funciona en NS6.0, yo creia que no. Pero bueno, su te va bien mejor, menos codigo, que es de lo que se trata ;)