bootstrap modal弹出框的垂直居中


Posted in Javascript onDecember 14, 2016

本人前端菜鸟,公司项目尝试采用bootstrap,我身先士卒为同事趟“坑”,无奈UI妹子刁难非得让modal弹出框垂直居中,为了前端开发岗位的荣誉,花时间满足之。

最先就是百度咯,方法,就是修改源码

that.$element.children().eq(0).css("position", "absolute").css({
      "margin":"0px",
      "top": function () {
        return (that.$element.height() - that.$element.children().eq(0).height()-40) / 2 + "px";
      },
     "left": function () {
        return (that.$element.width() - that.$element.children().eq(0).width()) / 2 + "px";
      }
    });

这里的that.element就是最外层的div.modal ,that.element.children().eq(0)就是div.modal-dialog,无非就是计算里边modal-dialog的left值和height值来让它居中咯,问题来了,你把这段代码加入bootstrap.js的源码(大概1000行左右的样子),可以console到that.element.children().eq(0).width()一直为0,也就是它还没创建,获取不到值,菜鸟拙见,加了个setTimeout 150ms的延迟,倒是获取到了,妥妥的居中,又蹦出两个问题,一个是用户主动拖动窗口大小的时候,它不会跟着自适应,解决方法也很简单写个resize方法;第二个问题是当窗口小于时600时that.element.children().eq(0).width()的值时而对,时而不对(求大神路过帮忙解答),故弃之

想直接解决问题看上边直接忽略

垂直居中考虑到display:table-cell,也受网上的启发,解决方法如下。
重写样式并style标签或外联引入html内

.modal-dialog{display:table-cell;vertical-align:middle;} 
.modal-content{width:600px;margin:0px auto;} 
@media screen and (max-width: 780px) { 
.modal-content{width:400px;} 
} 
@media screen and (max-width: 550px) { 
.modal-content{width:220px;} 
}

将modal触发事件$(‘.modal').modal()改为如下

$('.modal').modal().css({'display':'table','width':'100%','height':'100%'})

改起来很简单,也很暴力,后果就是在任意处点击让modal消失的事件失效了,我搜的资料如是说我搜的资料,但我没看懂咋整

bootstrap modal弹出框的垂直居中

虽然点击叉子和close按钮都可以实现关闭,但是不能让后台同事看不起啊,自己想了想在js里插入两行酱紫的代码

$(触发器).click(function(){          
  $('.modal').modal().css({'display':'table','width':'100%','height':'100%'})//这句触发modal
  $('.modal-backdrop').fadeIn()
  event.stopPropagation();//因为触发的元素肯定在document里边,所以必须阻止冒泡
})
$(document).click(function(){
  $('.modal').hide()
  $('.modal-backdrop').fadeOut()
})

到此,能实现modal的垂直居中,但问题还是有的,modal-backdrop的fadein时间和fadeout时间忽闪忽闪的过于夸张跟原来的还是有点异样,求过路大神,提点。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
如何简单地用YUI做JavaScript动画
Mar 10 Javascript
jquery异步循环获取功能实现代码
Sep 19 Javascript
基于jQuery的计算文本框字数的代码
Jun 06 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
Apr 26 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
Nov 26 Javascript
AngularJS中的模块详解
Jan 29 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
Apr 26 Javascript
Bootstrap组件(一)之菜单
May 11 Javascript
JS本地刷新返回上一页代码
Jul 25 Javascript
vue实现商城秒杀倒计时功能
Dec 12 Javascript
keep-alive不能缓存多层级路由菜单问题解决
Mar 10 Javascript
微信小程序弹窗禁止页面滚动的实现代码
Dec 30 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
Dec 14 #Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
Dec 14 #Javascript
bootstrap模态框实现拖拽效果
Dec 14 #Javascript
AngularJS基于ui-route实现深层路由的方法【路由嵌套】
Dec 14 #Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
Dec 14 #Javascript
Bootstrap实现圆角、圆形头像和响应式图片
Dec 14 #Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
Dec 14 #Javascript
You might like
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
jQuery DOM操作实例
2014/03/05 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
js实现简单的可切换选项卡效果
2015/04/10 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
常用的JQuery函数及功能小结
2016/03/24 Javascript
js实现的简练高效拖拽功能示例
2016/12/21 Javascript
JS中的多态实例详解
2017/10/15 Javascript
vue 组件中slot插口的具体用法
2018/04/03 Javascript
python连接MySQL数据库实例分析
2015/05/12 Python
Python3中详解fabfile的编写
2018/06/24 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
2019/08/20 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
世界上最大的乐谱选择:Sheet Music Plus
2020/01/18 全球购物
c/c++某大公司的两道笔试题
2014/02/02 面试题
介绍一下gcc特性
2015/10/31 面试题
市场营销专科应届生求职信
2013/11/24 职场文书
上班离岗检讨书
2014/01/27 职场文书
分公司负责人任命书
2014/06/04 职场文书
建筑工地大门标语
2014/06/18 职场文书
关于运动会的广播稿
2014/09/22 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
同学聚会通知短信
2015/04/20 职场文书
2015年政风行风工作总结
2015/04/21 职场文书
一个独生女的故事观后感
2015/06/04 职场文书
运动会加油稿50字
2015/07/21 职场文书
大学同学聚会感言
2015/07/30 职场文书
2016班级元旦联欢会开幕词
2016/03/04 职场文书