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 相关文章推荐
用javascript实现给图片加链接
Aug 15 Javascript
JQery 渐变图片导航效果代码 漂亮
Jan 01 Javascript
一个css与js结合的下拉菜单支持主流浏览器
Oct 08 Javascript
教你如何使用node.js制作代理服务器
Nov 26 Javascript
JS实现自动变换的菜单效果代码
Sep 09 Javascript
javascript中checkbox使用方法实例演示
Nov 19 Javascript
Vue.js框架路由使用方法实例详解
Aug 25 Javascript
基于Vue+element-ui 的Table二次封装的实现
Jul 20 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
Dec 13 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
Mar 12 Javascript
使用异步组件优化Vue应用程序的性能
Apr 28 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
Oct 20 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
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
PHP伪静态页面函数附使用方法
2008/06/20 PHP
php addslashes 函数详细分析说明
2009/06/23 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
Javascript 学习书 推荐
2009/06/13 Javascript
javascript中判断一个值是否在数组中并没有直接使用
2012/12/17 Javascript
JavaScript实现QueryString获取GET参数的方法
2013/07/02 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
Jquery 监视按键,按下回车键触发某方法的实现代码
2014/05/11 Javascript
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
2015/01/13 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
JavaScript对象_动力节点Java学院整理
2017/06/23 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
从零学Python之hello world
2014/05/21 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
Python3多线程操作简单示例
2018/05/22 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
海飞丝广告词
2014/03/20 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
二手房购房协议书范本
2014/10/05 职场文书
小学重阳节活动总结
2015/03/24 职场文书
2019年暑期安全广播稿!
2019/07/03 职场文书