Ho scritto il seguente script per visualizzare un elemento nascosto, quindi correggere la sua posizione al centro della pagina.offsetHeight e offsetWidth che calcolano erroneamente sul primo evento onclick, non secondo
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";
}
Quando questa funzione viene richiamata da un evento onclick, l'offsetHeight e offsetWidth sono calcolati in modo errato, quindi non centrare correttamente l'elemento. Se faccio clic sull'elemento onclick una seconda volta, offsetHeight e offsetWidth vengono calcolati correttamente.
Ho provato a cambiare l'ordine in ogni modo che posso immaginare, e questo mi sta facendo impazzire! Qualsiasi aiuto è molto apprezzato!
Hmm, il tuo codice sembra funzionare correttamente per me? http://jsfiddle.net/mrtsherman/SdTEf/1/ – mrtsherman
@mtrsherman, GRAZIE. Sei jsfiddle mi ha mostrato l'errore dei miei modi. Fai attenzione: se non definisci altezza e larghezza per l'elemento che desideri determinare l'altezza e la larghezza, non otterrai l'altezza e la larghezza corrette usando offsetHeight e offsetWidth. – saoyr5
Yay. Sono felice che tu l'abbia risolto. Problemi come questo in cui tutto sembra ok, ma non lo sono: fai esplodere la testa! – mrtsherman