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 相关文章推荐
jQuery实现瀑布流的取巧做法分享
Jan 12 Javascript
js表单提交和submit提交的区别实例分析
Dec 10 Javascript
微信小程序 http请求详细介绍
Oct 09 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
Dec 08 Javascript
JavaScript拖动层Div代码
Mar 01 Javascript
微信小程序 标签传入数据
May 08 Javascript
JavaScript运动框架 解决速度正负取整问题(一)
May 17 Javascript
vue-cli3.0 特性解读
Apr 22 Javascript
原生js封装的ajax方法示例
Aug 02 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
Sep 27 Javascript
使用PreloadJS加载图片资源的基础方法详解
Feb 03 Javascript
Vue+Vant 图片上传加显示的案例
Nov 03 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 SPL标准库中的常用函数介绍
2015/05/11 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
jQuery分别获取选中的复选框值的示例
2014/06/17 Javascript
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
Python 时间处理datetime实例
2008/09/06 Python
python中sets模块的用法实例
2014/09/30 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Python贪心算法实例小结
2018/04/22 Python
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
python 字段拆分详解
2019/12/17 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
python实现逻辑回归的示例
2020/10/09 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
仿酷狗html5手机音乐播放器主要部分代码
2013/05/15 HTML / CSS
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
学生思想表现的评语
2014/01/30 职场文书
应届毕业生简历自我评价
2014/01/31 职场文书
晚归检讨书
2014/02/19 职场文书
健康家庭事迹材料
2014/05/02 职场文书
药店促销活动总结
2014/07/10 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
成绩报告单家长评语
2014/12/30 职场文书
仓管员岗位职责
2015/02/03 职场文书
中学生自我评价范文
2015/03/03 职场文书
2015年乡镇纪检工作总结
2015/04/22 职场文书
2019年最新借条范本!
2019/07/08 职场文书
分析Netty直接内存原理及应用
2021/06/14 Java/Android
CSS实现鼠标悬浮动画特效
2023/05/07 HTML / CSS