利用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 相关文章推荐
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
Nov 30 Javascript
Js组件的一些写法
Sep 10 Javascript
JavaScript新窗口与子窗口传值详解
Feb 11 Javascript
酷! 不同风格页面布局幻灯片特效js实现
Feb 19 Javascript
JavaScript 继承详解(六)
Oct 11 Javascript
通过sails和阿里大于实现短信验证
Jan 04 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
Mar 07 Javascript
Vue中添加过渡效果的方法
Mar 16 Javascript
vuejs手把手教你写一个完整的购物车实例代码
Jul 06 Javascript
详解React Native网络请求fetch简单封装
Aug 10 Javascript
用Node提供静态文件服务的方法
Jul 06 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
Sep 19 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日历[测试通过]
2008/03/27 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
2017/03/13 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
node.js基础知识小结
2018/02/26 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
Js逆向实现滑动验证码图片还原的示例代码
2020/03/10 Javascript
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
在Pytorch中使用样本权重(sample_weight)的正确方法
2019/08/17 Python
给我一面国旗 python帮你实现
2019/09/30 Python
Python笔记之facade模式
2019/11/20 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
python 实现简易的记事本
2020/11/30 Python
python实现经纬度采样的示例代码
2020/12/10 Python
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
web字体加载方案优化小结
2019/11/29 HTML / CSS
土建专业大学生自荐信范文
2014/04/09 职场文书
2014年社区民政工作总结
2014/12/02 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
小学教师党员承诺书
2015/04/27 职场文书
董存瑞观后感
2015/06/11 职场文书
我的中国梦主题班会
2015/08/14 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
pytorch 运行一段时间后出现GPU OOM的问题
2021/06/02 Python
python通过opencv调用摄像头操作实例分析
2021/06/07 Python