利用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 相关文章推荐
控制input输入框中提示信息的显示和隐藏的方法
Feb 12 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
Jun 06 Javascript
原生javascript获取元素样式
Dec 31 Javascript
省市区三级联动下拉框菜单javascript版
Aug 11 Javascript
JS操作COOKIE实现备忘记录的方法
Apr 01 Javascript
基于BootStarp的Dailog
Apr 28 Javascript
JavaScript编码风格指南(中文版)
Aug 26 Javascript
javascript获取指定区间范围随机数的方法
Sep 08 Javascript
详解webpack引入第三方库的方式以及注意事项
Jan 15 Javascript
json 带斜杠时如何解析的实现
Aug 12 Javascript
node实现简单的增删改查接口实例代码
Aug 22 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
Nov 20 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
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
javascript判断css3动画结束 css3动画结束的回调函数
2015/03/10 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
Javascript实现代码折叠功能
2016/08/25 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
js实现登录验证码
2016/12/22 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
vue axios数据请求及vue中使用axios的方法
2018/09/10 Javascript
vue结合element-ui使用示例
2019/01/24 Javascript
vue.js iview打包上线后字体图标不显示解决办法
2020/01/20 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
Python语言的变量认识及操作方法
2018/02/11 Python
更换Django默认的模板引擎为jinja2的实现方法
2018/05/28 Python
python+flask实现API的方法
2018/11/21 Python
Django上线部署之IIS的配置方法
2019/08/22 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
Python实现结构体代码实例
2020/02/10 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
DataList 能否分页,请问如何实现?
2015/05/03 面试题
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
建筑设计师岗位职责
2013/11/18 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
服装创业计划书范文
2014/02/05 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
禁毒宣传活动总结
2014/08/26 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
清明节网上祭英烈寄语2015
2015/03/04 职场文书
慈善募捐倡议书
2015/04/27 职场文书
女方离婚起诉书
2015/05/18 职场文书
小学校园广播稿
2015/08/18 职场文书
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript