利用jq让你的div居中的好方法分享


Posted in Javascript onNovember 21, 2013

very short version:

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

short version:

(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();
 

PLUGIN VERSION

(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});
    });
);
Javascript 相关文章推荐
Javascript中String的常用方法实例分析
Jun 13 Javascript
javascript实现的简单计时器
Jul 19 Javascript
JS实现生成会变大变小的圆环实例
Aug 05 Javascript
关于JS 预解释的相关理解
Jun 28 Javascript
微信小程序入门教程
Nov 18 Javascript
JavaScript中利用构造器函数模拟类的方法
Feb 16 Javascript
JavaScript实现打印星型金字塔功能实例分析
Sep 27 Javascript
ES6 class的应用实例分析
Jun 27 Javascript
vue-amap根据地址回显地图并mark的操作
Nov 03 Javascript
js实现限定区域范围拖拉拽效果
Nov 20 Javascript
vue elementUI表格控制对应列
Apr 13 Vue.js
Echarts如何重新渲染实例详解
May 30 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
Nov 21 #Javascript
开发插件的两个方法jquery.fn.extend与jquery.extend
Nov 21 #Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
Nov 21 #Javascript
js中一个函数获取另一个函数返回值问题探讨
Nov 21 #Javascript
js设置组合快捷键/tabindex功能的方法
Nov 21 #Javascript
jtable列中自定义button示例代码
Nov 21 #Javascript
动态标签 悬停效果 延迟加载示例代码
Nov 21 #Javascript
You might like
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
PHP 采集程序 常用函数
2008/12/18 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
符合标准的js表单提交的代码
2007/09/13 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
一个JavaScript递归实现反转数组字符串的实例
2014/10/14 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
JavaScript每天必学之数组和对象部分
2016/09/17 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
javascript性能优化之分时函数的介绍
2018/03/28 Javascript
vuex + keep-alive实现tab标签页面缓存功能
2019/10/17 Javascript
Vue.js中Line第三方登录api的实现代码
2020/06/29 Javascript
Javascript call及apply应用场景及实例
2020/08/26 Javascript
python 七种邮件内容发送方法实例
2014/04/22 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
HTML5标签大全
2016/11/23 HTML / CSS
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
韩语专业本科生求职信
2013/10/01 职场文书
运动会入场词100字
2014/02/06 职场文书
cf收人广告词大全
2014/03/14 职场文书
爱护公共设施的标语
2014/06/24 职场文书
2016高考感言
2015/08/01 职场文书
2019最新版劳务派遣管理制度
2019/08/16 职场文书
python中if和elif的区别介绍
2021/11/07 Python
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python
Windows server 2012 NTP时间同步的实现
2022/06/25 Servers