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 选择文件夹对话框(web)
Jul 07 Javascript
打印json对象的内容及JSON.stringify函数应用
Mar 29 Javascript
JS中实现简单Formatter函数示例代码
Aug 19 Javascript
javascript实现分栏显示小技巧附图
Oct 13 Javascript
JavaScript创建对象的方式小结(4种方式)
Dec 17 Javascript
javascript实现全角转半角的方法
Jan 23 Javascript
JS Attribute属性操作详解
May 19 Javascript
AngularJS $injector 依赖注入详解
Sep 14 Javascript
浅谈js数组和splice的用法
Dec 04 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
Aug 14 Javascript
详解小程序缓存插件(mrc)
Aug 17 Javascript
小程序wx.getUserProfile接口的具体使用
Jun 02 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 header示例代码(推荐)
2010/09/08 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
js弹出层永远居中实现思路及代码
2013/11/29 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
全面理解闭包机制
2016/07/11 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
vue实现ajax滚动下拉加载,同时具有loading效果(推荐)
2017/01/11 Javascript
js date 格式化
2017/02/15 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
Linux Centos7.2下安装nodejs&npm配置全局路径的教程
2018/05/15 NodeJs
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
Map与WeakMap类型在JavaScript中的使用详解
2020/11/18 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
对Python中的@classmethod用法详解
2018/04/21 Python
Python创建或生成列表的操作方法
2019/06/19 Python
Python logging日志模块 配置文件方式
2020/07/12 Python
python re模块常见用法例举
2021/03/01 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
销售人员个人求职信
2013/09/26 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
个人求职信范文分享
2014/01/31 职场文书
机械系毕业生求职信
2014/05/28 职场文书
小学远程教育工作总结
2015/08/13 职场文书
国庆节主题班会
2015/08/15 职场文书
Python必备技巧之字符数据操作详解
2022/03/23 Python