利用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 相关文章推荐
使用jquery动态加载javascript以减少服务器压力
Oct 29 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
Apr 20 Javascript
浅谈JavaScript字符串与数组
Jun 03 Javascript
JS给Textarea文本框添加行号的方法
Aug 20 Javascript
jquery实现加载进度条提示效果
Nov 23 Javascript
前端页面文件拖拽上传模块js代码示例
May 19 Javascript
详解wow.js中各种特效对应的类名
Sep 13 Javascript
jquery ajax异步提交表单数据的方法
Oct 27 jQuery
基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式)
Apr 04 Javascript
vue-drag-chart 拖动/缩放图表组件的实例代码
Apr 10 Javascript
vue element ui validate 主动触发错误提示操作
Sep 21 Javascript
如何用JS实现简单的数据监听
May 06 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
php ckeditor上传图片文件名乱码解决方法
2013/11/15 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
Javascript实例教程(19) 使用HoTMetal(2)
2006/12/23 Javascript
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
一段批量给页面上的控件赋值js
2010/06/19 Javascript
js日历功能对象
2012/01/12 Javascript
将HTML格式的String转化为HTMLElement的实现方法
2014/08/07 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
基于Node.js的WebSocket通信实现
2017/03/11 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
[02:08:58]2014 DOTA2国际邀请赛中国区预选赛 Ne VS CIS
2014/05/22 DOTA
[15:41]教你分分钟做大人——灰烬之灵
2015/03/11 DOTA
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
Python中操作符重载用法分析
2016/04/29 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
Python探索之创建二叉树
2017/10/25 Python
将Django项目部署到CentOs服务器中
2018/10/18 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
Python同时处理多个异常的方法
2020/07/28 Python
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
教导处工作制度
2014/01/18 职场文书
高二政治教学反思
2014/02/01 职场文书
演讲比赛获奖感言
2014/02/02 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
小学生安全保证书
2015/05/09 职场文书
难以忽视的真相观后感
2015/06/05 职场文书
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android