Center 2.0
Created Wednesday 17th of September 2008 by Andreas Lagerkvist
Copyright © 2008 Andreas Lagerkvist (andreaslagerkvist.com)
What it Does
This little pluggy centers an element on the screen using either fixed or absolute positioning. Can be used to display messages, pop up images etc.
How to Use
jQuery('#my-element').center(true); would center the element with ID 'my-element' using absolute position (leave empty for fixed).
Example
I should be fixed centered
The paragraph above and the paragraph beneath this one are centered. They should be in the middle of the viewport.
I should be absolutely centered
Example Code
HTML
<div id="jquery-center-example">
<p>I should be fixed centered</p>
<p>The paragraph above and the paragraph beneath this one are centered. They should be in the middle of the viewport.</p>
<p>I should be absolutely centered</p>
</div>
JS
jQuery('#jquery-center-example p:first-child').center();
jQuery('#jquery-center-example p:last-child').center(true);
Source Code
jQuery.fn.center = function (absolute) {
return this.each(function () {
var t = jQuery(this);
t.css({
position: absolute ? 'absolute' : 'fixed',
left: '50%',
top: '50%',
zIndex: '99'
}).css({
marginLeft: '-' + (t.outerWidth() / 2) + 'px',
marginTop: '-' + (t.outerHeight() / 2) + 'px'
});
if (absolute) {
t.css({
marginTop: parseInt(t.css('marginTop'), 10) + jQuery(window).scrollTop(),
marginLeft: parseInt(t.css('marginLeft'), 10) + jQuery(window).scrollLeft()
});
}
});
};