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;
}
}
)
Gracias..