Napisałem poniższy skrypt, aby wyświetlić ukryty element, a następnie popraw jego pozycję na środku strony.offsetHeight i offsetWidth niepoprawnie obliczające pierwsze zdarzenie onclick, nie drugie
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";
}
Gdy ta funkcja jest wywoływana przez zdarzenie onclick The offsetHeight i offsetWidth obliczono nieprawidłowe, co nie jest prawidłowo centrowania elementu. Jeśli kliknę element onclick po raz drugi, offsetHeight i offsetWidth obliczają poprawnie.
Próbowałem zmienić kolejność w każdy możliwy sposób, jaki mogę sobie wyobrazić, a to doprowadza mnie do szału! Wszelaka pomoc jest bardzo doceniana!
Hmm, Twój kod wydaje się działać dobrze dla mnie? http://jsfiddle.net/mrtsherman/SdTEf/1/ – mrtsherman
@mtrsherman, DZIĘKUJĘ. Jesteś jsfiddle pokazał mi błąd moich sposobów. Zwróćmy uwagę: jeśli nie zdefiniujesz wysokości i szerokości elementu, który chcesz określić wysokość i szerokość, nie uzyskasz prawidłowej wysokości i szerokości za pomocą offsetHeight i offsetWidth. – saoyr5
Yay. Cieszę się, że to rozwiązałeś. Takie problemy, w których wszystko wydaje się w porządku, ale nie jest - niech głowa chce wybuchnąć! – mrtsherman