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 13 Javascript
javascript 表单规则集合对象
Jul 21 Javascript
小议Javascript中的this指针
Mar 18 Javascript
高效率JavaScript编写技巧整理
Aug 23 Javascript
jquery实现鼠标滑过小图查看大图的方法
Jul 20 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
May 05 Javascript
JS实现动态增加和删除li标签行的实例代码
Oct 16 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
Dec 26 Javascript
js移动端事件基础及常用事件库详解
Aug 15 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
Nov 10 jQuery
js中getter和setter用法实例分析
Aug 14 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
Jun 26 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 curl 并发最佳实践代码分享
2012/09/05 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
PHP数组array类常见操作示例
2020/05/15 PHP
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
AngularJS基础学习笔记之指令
2015/05/10 Javascript
理解javascript闭包
2015/12/15 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
详解Typescript 内置的模块导入兼容方式
2020/05/31 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
wxpython实现按钮切换界面的方法
2019/11/19 Python
python利用xlsxwriter模块 操作 Excel
2020/10/14 Python
24个canvas基础知识小结
2014/12/17 HTML / CSS
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
Myprotein丹麦官网:欧洲第一运动营养品牌
2019/04/15 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
大学生预备党员自我评价分享
2013/11/16 职场文书
资源环境与城市管理专业推荐信
2013/11/30 职场文书
2014年高三毕业生自我评价
2014/01/11 职场文书
大学生个人先进事迹材料范文
2014/05/03 职场文书
公共机构节能宣传周活动总结
2014/07/09 职场文书
学习礼仪心得体会
2014/09/01 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书