jquery div 居中技巧应用介绍


Posted in Javascript onNovember 24, 2012

very short version:
[html]

$('#myDiv').css({top:'50%',left:'50%',margin:'-'+($('#myDiv').height() / 2)+'px 0 0 -'+($('#myDiv').width() / 2)+'px'}); 
$('#myDiv').css({top:'50%',left:'50%',margin:'-'+($('#myDiv').height() / 2)+'px 0 0 -'+($('#myDiv').width() / 2)+'px'});

short version:
[html]
(function($){ 
$.fn.extend({ 
center: function () { 
return 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); 
(function($){ 
$.fn.extend({ 
center: function () { 
return 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);

Activated by this code :
$('#mainDiv').center();

[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); 
[code] 
(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);

PLUGIN VERSION
[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($){ 
$.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);

Activated by this code :
$(document).ready(function(){ 
$('#mainDiv').center(); 
$(window).bind('resize', function() { 
$('#mainDiv').center({transition:300}); 
}); 
);

观此人JS代码,让人叹为观止。
简洁明了。却又举一反三。
Javascript 相关文章推荐
javascript 带有滚动条的表格,标题固定,带排序功能.
Nov 13 Javascript
js 通用javascript函数库整理
Aug 14 Javascript
Jquery 表格合并的问题分享
Sep 17 Javascript
js 实现日期灵活格式化的小例子
Jul 14 Javascript
js中window.open()的所有参数详细解析
Jan 09 Javascript
基于jquery实现发送文章到手机的代码
Dec 26 Javascript
jQuery中triggerHandler()方法用法实例
Jan 19 Javascript
JS实现滑动门效果的方法详解
Dec 19 Javascript
js省市区级联查询(插件版&无插件版)
Mar 21 Javascript
vuex 动态注册方法 registerModule的实现
Jul 03 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
Oct 10 jQuery
vue 插槽简介及使用示例
Nov 19 Vue.js
js实现在文本框光标处添加字符的方法介绍
Nov 24 #Javascript
js获取TreeView控件选中节点的Text和Value值的方法
Nov 24 #Javascript
js 连接数据库如何操作数据库中的数据
Nov 23 #Javascript
js 如何实现对数据库的增删改查
Nov 23 #Javascript
Js如何判断客户端是PC还是手持设备简单分析
Nov 22 #Javascript
IE下使用cloneNode注意事项分享
Nov 22 #Javascript
jquery remove方法应用详解
Nov 22 #Javascript
You might like
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
php 中文和编码判断代码
2010/05/16 PHP
php简单socket服务器客户端代码实例
2015/05/18 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
PHP实现一个简单url路由功能实例
2016/11/05 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
取得父标签
2006/11/14 Javascript
jQuery 对象中的类数组操作
2009/04/27 Javascript
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
使用js 设置url参数
2013/07/08 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
基于react后端渲染模板引擎noox发布使用
2018/01/11 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
python执行外部程序的常用方法小结
2015/03/21 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
有关Python的22个编程技巧
2018/08/29 Python
python GUI计算器的实现
2020/10/09 Python
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
爱尔兰橄榄球店:Irish Rugby Store
2019/12/05 全球购物
十一个高级MySql面试题
2014/10/06 面试题
校领导推荐信
2013/11/01 职场文书
高三地理教学反思
2014/01/11 职场文书
高考标语大全
2014/06/05 职场文书
目标责任书格式
2014/07/28 职场文书
精神文明建设汇报材料
2014/12/24 职场文书
导游词之无锡梅园
2019/11/28 职场文书