jQuery将div在窗口中垂直居中实例代码:
将一个元素在窗口中垂直居中是常有的操作,下面就以div为例介绍一下如何实现此操作。
代码实例如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂蚁部落</title> <style type="text/css"> #thediv { width:100px; height:100px; background:red; } </style> <script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> (function($){ $.fn.extend({ center:function(){ this.each(function(){ var top=($(window).height()-$(this).outerHeight())/2; var left=($(window).width()-$(this).outerWidth())/2; $(this).css({position:'absolute',margin:0,top:(top >0?top:0)+'px',left:(left>0?left:0)+'px'}); }); } }); })(jQuery); $(document).ready(function(){ $("#thediv").center() }) </script> </head> <body> <div id="thediv"></div> </body> </html>
以上代码实现了我们的要求,可以将div在窗口中是实现水平垂直居中效果,下面介绍一下实现过程。
一.实现原理:
原理特别的简单,就是获取窗口的尺寸和要居中元素的尺寸,然后将要居中的元素设置为绝对定位,然后将要居中元素的top和left属性值分别设置为($(window).height()-$(this).outerHeight())/2和($(window).width()-$(this).outerWidth())/2,这样就垂直居中了,可以参阅css实现div水平垂直居中代码一章节。具体可以参阅代码注释。
二.代码注释:
1.(function($){}(jQuery),创建并执行一个匿名函数,参数jQuery对象。
2.$.fn.extend(),为jQuery添加一个实例对象。
3.center:function(){},函数的名称是center。
4.this.each(function(){}),以匹配元素集合的每一个元素作为上下文去执行函数,这里的this是指向一个jquery对象。
5.var top=($(window).height()-$(this).outerHeight())/2,设置div的top属性值,这里的this指向dom元素div。
6.var left=($(window).width()-$(this).outerWidth())/2,设置div的left属性值,这里的this指向dom元素div。
7.$(this).css({position:'absolute',margin:0,top: (top >0?top:0)+'px',left: (left>0?left:0)+'px'}),通过css()函数将div设置为绝对定位,外边距设置为0,然后再设置它的left和top属性值。
原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=10707
更多内容可以参阅;http://www.softwhy.com/jquery/