<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jQuery如何设定div始终居中显示</title>
<link rel="stylesheet" type="text/css" href="../css/demos.css"/>
<style type="text/css">
#centerDiv {
width:150px;
height:150px;
font-size:12px;
color:blue;
background-color:#808080;
}
</style>
</head>
<body>
<h2 id="h2-caption">jQuery如何设定div始终居中显示</h2>
<div id="centerDiv">设定div始终居中显示</div>
<script src="../../js/jquery-1.9.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
// 居中插件
;(function($){
$.fn.extend({
center:function(options){
var options=$.extend({ // Default values
inside:window, // element, center into window
transition:0, // millisecond, transition time
minX:0, // pixel, minimum left element value
minY:0, // pixel, minimum top element value
withScrolling:true, // booleen, take care of the scrollbar (scrollTop)
vertical:true, // booleen, center vertical
horizontal:true // booleen, center horizontal
}, options);
return this.each(function(){
var props={position:'absolute'};
if(options.vertical){
var top=($(options.inside).height()-$(this).outerHeight())/2;
if(options.withScrolling) top+=$(options.inside).scrollTop()||0;
top=(top>options.minY?top:options.minY);
$.extend(props,{top:top+'px'});
}
if(options.horizontal){
var left=($(options.inside).width()-$(this).outerWidth())/2;
if (options.withScrolling) left+=$(options.inside).scrollLeft()||0;
left=(left>options.minX?left:options.minX);
$.extend(props,{left:left+'px'});
}
if(options.transition>0) $(this).animate(props,options.transition);
else $(this).css(props);
return $(this);
});
}
});
})(jQuery);
// 屏幕居中
$(function(){
$('#centerDiv').center();
$(window).bind('resize',function(){
$('#centerDiv').center({transition:500});
});
});
</script>
</body>
</html>