|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Regístrate para
recibir el boletín de
e-Contento.com. Ya somos 4356 suscriptores. [+]
|
|
Listado de Artículos |
|
|
Alto y ancho del navegador.
|
En este artículo muestro un par de funciones JavaScript para calcular la altura y anchura de la ventana del navegador, sin bordes, menús, barra de estado o scrolls. La finalidad de estas dos funciones es calcular las dimensiones de la parte "útil" de la ventana. |
|
Recientemente, me preguntaron que cómo se calculaba el "Ancho" y "Alto" útiles del navegador. No supe responder.
Lo cierto, es que es una de esas tareas rutinarias, que aparecen de cuando en cuando, y te amargan la existencia durante un par de días, hasta que resuelves el problema. Luego, cuando menos te lo esperas, vuleve a surgir el problema, que suele coincidir con el momento en que te das cuenta que se te ha olvidado cómo lo resolviste la última vez...
Bueno, pues ahí van las dos funciones que solucionan ese problemilla. (Ya no se me olvidarán nunca más...)
// Archivo Dimensiones Ventana
// Dos funciones que calculan el alto y el
// ancho de la parte util del navegador
// Fecha: 2001 04 17
// Copyright (C) 2001 Juan Antonio Jiménez
// Distribuido bajo los términos de
// GNU Library General Public License
// Disponible en http://e-Contento.com/
function calculaAlto(){
if (document.layers){
alto = window.innerHeight;
} else {
alto = document.body.clientHeight;
}
return alto;
}
function calculaAncho(){
if (document.layers){
ancho = window.innerWidth;
} else {
ancho = document.body.clientWidth;
}
return ancho;
}
Para el Netscape es fácil y es rápido encontrarlo en la documentación, pero os aseguro que en el explorer nunca se te ocurriría que el ancho y el alto se obtienen consultando una propiedad del objeto body. Se te podría ocurrir que es algo propio de "window" o de "navigator", pero no. Es de "body"...
Esto tiene un inconveniente. Y es que estas propiedades se obtienen en el momento de la carga de la página y luego permanecen invariables. Es decir, que si redimensionas la ventana y consultas cuanto vale "alto" y "ancho", descubres con sorpresa que siguen valiendo lo mismo que antes.
La solución sería que cada vez que detectemos que hay un cambio de tamaño(resize) de la ventana, forcemos un reLoad(). Lo cual es un poco engorroso, puesto que no existe el controlador de eventos "onResize".
Aprovecho, para dar las gracias a Juan Luis, por soplarmelo para el Internet Explorer.
Juan Antonio Jiménez |
volver |
|
|
|
|
|
MIS FOTOS... |
|
CITA |
|
Cuando los pacíficos pierden toda esperanza, los violentos encuentran motivo para disparar. Harold Wilson
|
|
2 + 2 = 4.52 (IVA INCLUIDO)
|
|