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 相关文章推荐
textarea焦点的用法实现获取焦点清空失去焦点提示效果
May 19 Javascript
javascript获取本机操作系统类型的方法
Aug 13 Javascript
基于replaceChild制作简单的吞噬特效
Sep 21 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
Jul 22 Javascript
用AngularJS的指令实现tabs切换效果
Aug 31 Javascript
JavaScript随机生成颜色的方法
Oct 15 Javascript
纯JS焦点图特效实例(可一个页面多用)
Dec 07 Javascript
微信小程序 devtool隐藏的秘密
Jan 21 Javascript
Vue.js实战之组件之间的数据传递
Apr 01 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
Jul 06 Javascript
深入理解JavaScript的值传递和引用传递
Oct 24 Javascript
Vue+Java+Base64实现条码解析的示例
Sep 23 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的GD库imagettftext函数解决中文乱码问题
2015/01/24 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
javascript 当前日期加(天、周、月、年)
2009/08/09 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
关于URL中的特殊符号使用介绍
2011/11/03 Javascript
js获取url中"?"后面的字串方法
2014/05/15 Javascript
原生js实现fadein 和 fadeout淡入淡出效果
2014/06/05 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
jquery trigger函数执行两次的解决方法
2016/02/29 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
JavaScript轻松创建级联函数的方法示例
2017/02/10 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
微信小程序修改checkbox的样式代码实例
2020/01/21 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
vue实现购物车的小练习
2020/12/21 Vue.js
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python根据时间生成mongodb的ObjectId的方法
2015/03/13 Python
Python黑魔法Descriptor描述符的实例解析
2016/06/02 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
基于python使用tibco ems代码实例
2019/12/20 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
Python实现一个简单的毕业生信息管理系统的示例代码
2020/06/08 Python
python实现数字炸弹游戏
2020/07/17 Python
Python实现简单的2048小游戏
2021/03/01 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
英国最大的户外商店:Go Outdoors
2019/04/17 全球购物
小学学习雷锋活动总结
2014/07/03 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
2015暑期社会实践通讯稿
2015/07/18 职场文书
2016年全国爱牙日宣传活动总结
2016/04/05 职场文书
如何正确理解python装饰器
2021/06/15 Python
唤醒紫霞仙子,携手再游三界!大话手游X《大话西游》电影合作专属剧情任务
2022/04/03 其他游戏
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android