利用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使用手册之三 CSS操作
Mar 24 Javascript
jquery 学习笔记一
Apr 07 Javascript
js自定义事件及事件交互原理概述(一)
Feb 01 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
Dec 02 Javascript
Vue.js每天必学之数据双向绑定
Sep 05 Javascript
基于 Vue 实现一个酷炫的 menu插件
Nov 14 Javascript
Vue 项目部署到服务器的问题解决方法
Dec 05 Javascript
Angular @HostBinding()和@HostListener()用法
Mar 05 Javascript
JS防抖和节流实例解析
Sep 24 Javascript
swiper实现异形轮播效果
Nov 28 Javascript
JS代码编译器Monaco使用方法
Jun 11 Javascript
vue el-table实现递归嵌套的示例代码
Aug 14 Vue.js
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
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
phpphp图片采集后按原路径保存图片示例
2014/02/18 PHP
浅谈PHP定义命令空间的几个注意点(推荐)
2016/10/29 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
Mootools 1.2教程 输入过滤第二部分(字符串)
2009/09/15 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
让js弹出窗口居前显示的实现方法
2013/07/10 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
微信小程序网络请求实现过程解析
2019/11/06 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
python检测lvs real server状态
2014/01/22 Python
python logging 日志轮转文件不删除问题的解决方法
2016/08/02 Python
python基于ID3思想的决策树
2018/01/03 Python
使用python为mysql实现restful接口
2018/01/05 Python
python机器人行走步数问题的解决
2018/01/29 Python
Python创建字典的八种方式
2019/02/27 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
使用Python为中秋节绘制一块美味的月饼
2019/09/11 Python
浅谈Python里面None True False之间的区别
2020/07/09 Python
迪奥官网:Dior.com
2018/12/04 全球购物
为什么要有struct关键字
2012/05/08 面试题
销售人员中英文自荐信
2013/09/22 职场文书
材料成型专业个人求职信范文
2013/09/25 职场文书
省三好学生申请材料
2014/01/22 职场文书
《火烧云》教学反思
2014/04/12 职场文书
社区矫正工作方案
2014/06/04 职场文书
城市规划应届生推荐信
2014/09/08 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
优秀护士事迹材料
2014/12/25 职场文书
色戒观后感
2015/06/12 职场文书