Foros del Web » Programando para Internet » Javascript »

document.body.offsetWidth y offsetHeight

Estas en el tema de document.body.offsetWidth y offsetHeight en el foro de Javascript en Foros del Web. Hola de nuevo, Quisiera colocar una capa justo en la esquina inferior derecha del documento, pero cuando lo hago leyendo las propiedades offsetWidth y offsetHeight ...
  #1 (permalink)  
Antiguo 02/05/2007, 10:11
 
Fecha de Ingreso: abril-2006
Mensajes: 80
Antigüedad: 20 años, 6 meses
Puntos: 2
document.body.offsetWidth y offsetHeight

Hola de nuevo,

Quisiera colocar una capa justo en la esquina inferior derecha del documento, pero cuando lo hago leyendo las propiedades offsetWidth y offsetHeight del documento siempre falta un trozo para que la capa esté en la esquina. Es decir: document.body.offsetWidth es menor que la anchura real del documento y document.body.offsetHeight es menor que la altura del documento, tanto en IE como en Mozilla.

Por si interesa pongo una porción del código que utilizo:

Código PHP:
// Falso popup
popup= document.createElement("div");
document.body.appendChild(popup);
popup.setAttribute("id", "popup");

// Encabezado
titulo= document.createElement("div");
popup.appendChild(titulo);
titulo.setAttribute("id", "movil");
titulo.appendChild(document.createTextNode(""));

// Div en el encabezado a la derecha
derecha= document.createElement("div");
titulo.appendChild(derecha);
derecha.setAttribute("id", "derecha");

// Cruz para cerrar
cierre= document.createElement("span");
derecha.appendChild(cierre);
cierre.setAttribute("id", "cruz");
cierre.setAttribute("title", "Cerrar");
cierre.appendChild(document.createTextNode("X"));
cierre.onclick= function(){popup.style.display='none';}

// Imagen
im1= document.createElement("img");
// im1.setAttribute("src", "la que sea");
popup.appendChild(im1);

titulo.onmousedown= function()
    {
        
diferenciax= ratonx - popup.offsetLeft; // Distancia del ratón al lado izquierdo del popup
        
diferenciay= ratony - popup.offsetTop; // Distancia del ratón al lado superior del popup
        
mover= 1;
        return 
false
    
}
document.onmouseup= function(){mover= 0}

añadirEvento(document, "mousemove", function(e)
    {
        
ratonx= caract1?e.pageX:event.clientX+scrollx; // Posicion x del raton
        
ratony= caract1?e.pageY:event.clientY+scrolly; // Posicion y del raton
        
if (mover) // Si el raton se mantiene pulsado en el encabezado del popup
        
{
            
with (popup.style)
            {
                
left= ratonx - diferenciax + "px"; // Posicion x del popup
                
if (ratonx-diferenciax<0){left= "0px";}
                if (
ratonx-diferenciax>document.body.offsetWidth-popup.offsetWidth){left= (document.body.offsetWidth-popup.offsetWidth)+"px";}
                
top= ratony - diferenciay + "px"; // Posicion y del popup
                
if (ratony-diferenciay<0){top= "0px";}
                if (
ratony-diferenciay>document.body.offsetHeight-popup.offsetHeight){top= (document.body.offsetHeight-popup.offsetHeight)+"px";}
            }
            return 
false;
        }
    }
) 
Se trata de un "falso popup" que puedes mover por la ventana, pero no quiero que se salga del documento. Pero cuando lo desplazo hacia la derecha o hacia abajo se para bastante antes de los límites de la página. Querría saber si hay algún modo para que se pare justo en el límite.

Gracias..
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 08:52.