利用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 子窗口操作父窗口的代码
Sep 21 Javascript
在页面上用action传递参数到后台出现乱码的解决方法
Dec 31 Javascript
浅谈JavaScript中null和undefined
Jul 09 Javascript
jQuery获取table行数并输出单元格内容的实现方法
Jun 30 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
Feb 17 Javascript
Bootstrap模态框(Modal)实现过渡效果
Mar 17 Javascript
.vue文件 加scoped 样式不起作用的解决方法
May 28 Javascript
Vue隐藏显示、只读实例代码
Jul 18 Javascript
Vue 自定义标签的src属性不能使用相对路径的解决
Sep 17 Javascript
基于jQuery实现可编辑的表格
Dec 11 jQuery
vscode调试node.js的实现方法
Mar 22 Javascript
基于ajax实现上传图片代码示例解析
Dec 03 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中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
PHP类的特性实例分析
2016/09/28 PHP
Yii2实现自定义独立验证器的方法
2017/05/05 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
js页面跳转常用的几种方式
2010/11/25 Javascript
JS delegate与live浅析
2013/12/21 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
2016/06/14 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
async/await让异步操作同步执行的方法详解
2019/11/01 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
python编写的最短路径算法
2015/03/25 Python
python使用RNN实现文本分类
2018/05/24 Python
Python socket实现多对多全双工通信的方法
2019/02/13 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
django框架使用方法详解
2019/07/18 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
Tensorflow之MNIST CNN实现并保存、加载模型
2020/06/17 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
医院辞职信范文
2014/01/17 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
Flutter Navigator 实现路由传递参数
2022/04/22 Java/Android
详解Go语言中Get/Post请求测试
2022/06/01 Golang