He escrito la siguiente secuencia de comandos para mostrar un elemento oculto, luego corrijo su posición en el centro de la página.offsetHeight y offsetWidth calcular incorrectamente en el primer evento onclick, no en el segundo
function popUp(id,type) {
var popUpBox = document.getElementById(id);
popUpBox.style.position = "fixed";
popUpBox.style.display = "block";
popUpBox.style.zIndex = "6";
popUpBox.style.top = "50%";
popUpBox.style.left = "50%";
var height = popUpBox.offsetHeight;
var width = popUpBox.offsetWidth;
var marginTop = (height/2) * -1;
var marginLeft = (width/2) * -1;
popUpBox.style.marginTop = marginTop + "px";
popUpBox.style.marginLeft = marginLeft + "px";
}
Cuando esta función es llamada por un evento onclick, la offsetHeight y offsetWidth se calculan incorrectamente, por lo tanto no centrar el elemento correctamente. Si hago clic en el elemento onclick por segunda vez, offsetHeight y offsetWidth se calculan correctamente.
He intentado cambiar el orden en todos los sentidos que puedo imaginar, ¡y esto me está volviendo loco! ¡Cualquier ayuda es muy apreciada!
Hmm, su código parece funcionar bien para mí? http://jsfiddle.net/mrtsherman/SdTEf/1/ – mrtsherman
@mtrsherman, MUCHAS GRACIAS. Eres jsfiddle me mostró el error de mis caminos. Tenga en cuenta: si no define una altura y un ancho para el elemento del que desea determinar el alto y el ancho, no obtendrá la altura y el ancho correctos utilizando offsetHeight y offsetWidth. – saoyr5
Yay. Me alegro de que lo hayas resuelto. Problemas como este en los que todo parece estar bien, pero no lo son: ¡haz que mi cabeza quiera explotar! – mrtsherman