Foros del Web » Programando para Internet » Javascript »

Obtener alto de capa

Estas en el tema de Obtener alto de capa en el foro de Javascript en Foros del Web. hola, como la mayoria sabra, si queremos obtener el tamaño (alto) de un div por ejemplo, el codigo que debemos usar es valor = objeto.style.height; ...
  #1 (permalink)  
Antiguo 26/06/2006, 23:22
Avatar de Wdeah  
Fecha de Ingreso: julio-2005
Ubicación: Argentina
Mensajes: 109
Antigüedad: 18 años, 9 meses
Puntos: 0
Obtener alto de capa

hola, como la mayoria sabra, si queremos obtener el tamaño (alto) de un div por ejemplo, el codigo que debemos usar es
valor = objeto.style.height;
pero este codigo, solo funciona en caso de que esa propiedad este definida, osea que si nosotros no le damos ningun valor a el objeto desde CSS, no vamos a obtener resultados.
lo que necesito es saber si existe alguna otra forma de saber cual es el tamaño actual de una capa, digo esto porque el tamaño se puede ver modificado por saltos de linea y demas... hay alguna forma de averiguarlo?
gracias.
  #2 (permalink)  
Antiguo 27/06/2006, 00:54
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Wdeah

Prueba con:

valor = objeto.offsetHeight;

Saludos,
  #3 (permalink)  
Antiguo 27/06/2006, 02:12
Avatar de Wdeah  
Fecha de Ingreso: julio-2005
Ubicación: Argentina
Mensajes: 109
Antigüedad: 18 años, 9 meses
Puntos: 0
que crack... pero me surgio un problema.. como hago para saber el valor si el objeto esta oculto? osea, tiene la propiedad display: none;
es porque lo quiero mostrar mediante una animacion, y hasta que no lo animo permanece oculto, pero necesito el valor para poder animarlo... ^^
  #4 (permalink)  
Antiguo 27/06/2006, 05:59
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 19 años, 10 meses
Puntos: 4
debe tener display:block para que tenga medidas, lo que podes hacer es ocultarlo con visibility:hidden
__________________
Internet Explorer SuckS
Download FireFox
  #5 (permalink)  
Antiguo 27/06/2006, 10:30
Avatar de Wdeah  
Fecha de Ingreso: julio-2005
Ubicación: Argentina
Mensajes: 109
Antigüedad: 18 años, 9 meses
Puntos: 0
claro pero el visibility: hidden lo oculta masomenos, porque no se muestra, pero en su lugar aparece una espacio "vacio" de iguales dimensiones...
de no ser posible lo que planteo, alguien conoce o tiene idea que es lo que deberia hacer para "Desplegar" un div, como por ejemplo el menu de vBulletin, sin saber el tamaño?
porque la idea la tengo, un setTimeout que valla sumandole x px a el ancho/alto, pero la pregunta es.. cual es el limite??
saludos.
  #6 (permalink)  
Antiguo 27/06/2006, 15:11
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 19 años, 10 meses
Puntos: 4
no tiene limite.. se ajusta al contenido, si te referis al efecto que se va desplegando de a poco, yo hice uno y el truco (al menos como yo lo hice) es ir recortando la capa con la propiedad "clip" hasta que se vea por completo.
__________________
Internet Explorer SuckS
Download FireFox
  #7 (permalink)  
Antiguo 27/06/2006, 21:27
Avatar de Wdeah  
Fecha de Ingreso: julio-2005
Ubicación: Argentina
Mensajes: 109
Antigüedad: 18 años, 9 meses
Puntos: 0
Uhmm... no entiendo.. osea, voy a explicar mejor a lo que quiero llegar.
un ejemplo simple para que un div se valla desplegando de a poco...
la propiedad overflow de css tendria que estar en hidden;
despues la funcion que haga la animacion, la hice asi nomas para el ejemplo;

Código HTML:
<html>
<head>
<script type="text/javascript">
var px = 0;
var ALTODECAPA = 100;
function alargar ()
{
if (px < ALTODECAPA)
{
px = (px+10);
document.getElementById('div').style.display = 'block';
document.getElementById('div').style.height = px+'px';
setTimeout('alargar ()', 10);
}
}
</script>
</head>
<body>
<input type="button" onclick="alargar ();" value="alargar" />
<div id="div" style="display: none; border: 1px solid #000; padding: 10px; overflow: hidden;">contenido<br />contenido<br />contenido</div>
</body>
</html> 
como veran, la variable ALTODECAPA esta en 100, pero este es un valor que yo no se cual va a ser, porque puede variar dependiendo de los saltos de linea y demas...
Ese valor equivaldria a objeto.offsetHeight, pero al estar la propiedad display en none, no me sirve..
Cual seria la solucion para este preblema?
saludos y gracias por colaborar
  #8 (permalink)  
Antiguo 14/06/2007, 15:53
 
Fecha de Ingreso: junio-2007
Mensajes: 1
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Obtener alto de capa

Cita:
Iniciado por Wdeah Ver Mensaje
que crack... pero me surgio un problema.. como hago para saber el valor si el objeto esta oculto? osea, tiene la propiedad display: none;
es porque lo quiero mostrar mediante una animacion, y hasta que no lo animo permanece oculto, pero necesito el valor para poder animarlo... ^^
Afronto el mismo problema que tu, pero un poco mas complicado...
a ti tal vez podria servirte meter el objeto del que deseas conocer las dimensiones dentro de un div con
position:absolute;
left:-10000;
top:-10000;
como puedes ver, el div que contendra a tu div es visible y presentado, pero esta posicionado muy fuera de la pantalla... cuando se usan posiciones negativas no se afectan las barras de desplazamiento...

con eso SEGURO lo puedes medir, pero claro, debes conocer el maximo espacio que podria llegar a ocupar para evitar que "se asome" por accidente

aun no intento si se puede asignar visibility:hidden a este div auxiliar y seguir pudiendo "leer" las dimensiones del div que es contenido por el...

espero te sirva.
Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:48.