Чтобы поместить какой-то элемент страницы, например, картинку, посредине окна нужно определить его размеры и положения полос прокрутки. Остальное уже простая арифметика. Все необходимы действия я завернул в плагин jQuery.
jQuery.fn.centering = function () {
return this.each(function () {
var offset = jQuery(this).offset(),
w = jQuery(this).width(),
h = jQuery(this).height();
jQuery(this).css({
'position': 'absolute',
'width': w,
'height': h,
'top': parseInt(jQuery(window).scrollTop() - offset.top +
(jQuery(window).height() - h) / 2, 10),
'left': parseInt(jQuery(window).scrollLeft() - offset.left +
(jQuery(window).width() - w) / 2, 10)
});
});
};
Может оказаться так, что у элемента явно не задана его ширина и высота. Однако получая абсолютное позиционирование, важно сохранить эти значения, поэтому они явно дублируются. А благодаря коррекции смещения относительно предков центрируемый элемент может находиться в произвольном месте страницы.