Вы можете сделать это также
this=$('#yourDiv');
this.css("position","absolute");
this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
Это из одного из моих приложений, попробуйте и он должен центрироваться
рефакторинг, если вам нужна какая-либо настройка.
function centerPopup() {
var windowWidth = document.body.clientWidth;
var windowHeight = document.body.clientHeight;
var popupHeight = $('#popupplaceholder').height();
var popupWidth = $('#popupplaceholder').width();
if (popupWidth > windowWidth) {
popupWidth = (windowWidth) * (0.9);
}
if (popupHeight > windowHeight) {
popupHeight = (windowHeight) * (0.9);
}
//centering
var objControl = document.getElementById("yourDIV");
if (objControl != null) {
if (objControl.offsetParent != null) {
var left = (objControl.offsetParent.clientWidth / 2) - (objControl.clientWidth / 2) + objControl.offsetParent.scrollLeft;
var top = (objControl.offsetParent.clientHeight / 2) - (objControl.clientHeight / 2) + objControl.offsetParent.scrollTop;
$('#yourDIV').css({
"position": "absolute",
"top": top,
"left": left
});
}
}
}