Foros del Web » Programando para Internet » Javascript »

Cómo saber el ancho de una capa? (Ayuda por favor)

Estas en el tema de Cómo saber el ancho de una capa? (Ayuda por favor) en el foro de Javascript en Foros del Web. ¿Como puedo, desde javascript, sacar el width de un div en particular? yo he provado esto: window.document.all.capa.style.width pero me retorna undefined y tengo el siguiente ...
  #1 (permalink)  
Antiguo 07/10/2003, 15:35
Avatar de Sir Kevin  
Fecha de Ingreso: julio-2003
Ubicación: Barcelona
Mensajes: 25
Antigüedad: 20 años, 9 meses
Puntos: 0
Cómo saber el ancho de una capa? (Ayuda por favor)

¿Como puedo, desde javascript, sacar el width de un div en particular?

yo he provado esto:

window.document.all.capa.style.width

pero me retorna undefined

y tengo el siguiente codigo:

<style>
#capa { position: absolute;
left: 100;
top: 200;
width: 400;
height: 300;
}
</style>

y en el body:

<div id="capa">
su contenido
</div>


Si alguien puede ayudarme...

Última edición por KarlanKas; 08/10/2003 a las 10:40
  #2 (permalink)  
Antiguo 08/10/2003, 05:37
Avatar de Sir Kevin  
Fecha de Ingreso: julio-2003
Ubicación: Barcelona
Mensajes: 25
Antigüedad: 20 años, 9 meses
Puntos: 0
¿No hay nadie que sepa como puedo conseguirlo?

¿O es que no se puede?
  #3 (permalink)  
Antiguo 08/10/2003, 08:02
 
Fecha de Ingreso: noviembre-2002
Ubicación: Washington, DC
Mensajes: 822
Antigüedad: 21 años, 5 meses
Puntos: 5
No entiendo si lo que quieres es asignarle o cambiarle el width...Dale click al cuadro y el tamano se cambiara.
Quizas esto te de una idea:
Código:
<html>
<head>
	<title>Cambia tamano al hacer click en la div</title>
	<style type="text/css">
	#capa{
	position: absolute;
	top: 42px;
	left: 126px;
	width: 800px;
	height: 300px;
background-color:"#0000ff";
	}
	</style>
	
	<script language="JavaScript">
	function cambiatam(){
	document.getElementById("capa").style.width = "100px";
	
	}
	
	
	</script>
</head>

<body>
<div id="capa" onclick="cambiatam()" >
<h2>Un ejemplo solamente</h2>
</div>
</body>
</html>
__________________
Yanira
  #4 (permalink)  
Antiguo 08/10/2003, 10:11
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, Sir Kevin. Hola, Yanix (¡cuanto tiempo!)

Después de hacer algunas pruebas, he comprobado que tal como tienes definido el estilo no se puede leer el width. Pero si que puedes hacerlo si lo defines en la propia etiqueta <div>

<div id="capa" style="width:200;...

No me preguntes porqué.

Saludos,

P.D. Sir Kevin, deberías poner un título más descriptivo al mensaje. Ayudará a los demás, y también a ti mismo, cuando haya que realizar una busqueda.

Última edición por JavierB; 08/10/2003 a las 10:13
  #5 (permalink)  
Antiguo 08/10/2003, 13:12
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hombre, Sir Kevin, usté por aquí

Lo mejor es que uses el método getElementById() como comenta Yanix. De todas formas eso te devolverá el tamaño que en algún momento se le haya asignado a esa capa, pero no necesariamente te devolverá el espacio que realmente está ocupando.

Osea, tu puedes tener definida una capa con un width de 100 pero contener una imagen con un width de 200. Si el overflow (desbordamiento) está por defecto la capa en realidad tendrá una anchura de 200 pero si le pides su width te devolverá 100.

Si dinámicamente le cambias esa propiedad (como en el script que te propone Yanix) te devolvería el nuevo valor asignado, pero no necesariamente el que ocupa.

Por ejemplo, si a esa capa de 100px le asignas un nuevo width de 150px pero la imagen de dentro sigue siendo de 200 y le preguntas su anchura te devolverá 150px.

Resumiendo:

Si quieres saber el ancho real que ocupa una capa puedes pedírselo con

document.getElementById('capa').offsetWidth

apuesto a que no me enspliqué ...

<off topic> Yanix dónde te metes, tanto tiempo! </off topic>

Un saludón (Sir Kevin, Yanix y JavierB )
  #6 (permalink)  
Antiguo 08/10/2003, 14:02
Avatar de Sir Kevin  
Fecha de Ingreso: julio-2003
Ubicación: Barcelona
Mensajes: 25
Antigüedad: 20 años, 9 meses
Puntos: 0
Gracias a todos por la ayuda.

En cuanto al titulo, lo tendré en cuenta. Pero es que cuando no consigo algo me desespero...

A tunait: Exactamente es eso lo que quería, muxas gracias. Por cierto, te mande un mail para que vieras donde queria aplicarlo, pero mejor lo cuelgo aquí pa disfrute de todos.

Está en:

http://www.oraculorol.org/scripts/marquee.html

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 22:05.