Центрирование элементов страницы в окне

Чтобы поместить какой-то элемент страницы, например, картинку, посредине окна нужно определить его размеры и положения полос прокрутки. Остальное уже простая арифметика. Все необходимы действия я завернул в плагин 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)
        });
    });
};

Может оказаться так, что у элемента явно не задана его ширина и высота. Однако получая абсолютное позиционирование, важно сохранить эти значения, поэтому они явно дублируются. А благодаря коррекции смещения относительно предков центрируемый элемент может находиться в произвольном месте страницы.