利用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 相关文章推荐
用js计算页面执行时间的函数
Dec 07 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
Aug 16 Javascript
javascript面向对象之二 命名空间
Feb 08 Javascript
jQuery使用一个按钮控制图片的伸缩实现思路
Apr 19 Javascript
iframe子页面与父页面在同域或不同域下的js通信
May 07 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
Apr 07 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
May 27 Javascript
1秒50万字!js实现关键词匹配
Aug 01 Javascript
JS正则替换去空格的方法
Mar 24 Javascript
利用jsonp解决js读取本地json跨域的问题
Dec 11 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
Mar 07 Javascript
JS模拟实现京东快递单号查询
Nov 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
php中让人头疼的浮点数运算分析
2016/10/10 PHP
浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)
2017/03/14 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
js解析json读取List中的实体对象示例
2014/03/11 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
AngularJS Bootstrap详细介绍及实例代码
2016/07/28 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
Angular路由ui-router配置详解
2018/08/01 Javascript
JS实现图片切换效果
2018/11/17 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
合并百度影音的离线数据( with python 2.3)
2015/08/04 Python
python制作一个桌面便签软件
2015/08/09 Python
Python_LDA实现方法详解
2017/10/25 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
python函数局部变量、全局变量、递归知识点总结
2019/11/15 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
python excel和yaml文件的读取封装
2021/01/12 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
群胜软件Java笔试题
2012/09/29 面试题
运动会广播稿100字
2014/01/11 职场文书
临床护士自荐信
2014/01/31 职场文书
普通简短的个人自我评价
2014/02/15 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
2014年监理工作总结范文
2014/11/17 职场文书
大学生党员自我评价
2015/03/04 职场文书
python中if和elif的区别介绍
2021/11/07 Python
一文简单了解MySQL前缀索引
2022/04/03 MySQL