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 相关文章推荐
JScript分割字符串示例代码
Sep 04 Javascript
jQuery 获取浏览器所在的IP地址的小例子
Nov 08 Javascript
jQuery简易图片放大特效示例代码
Jun 09 Javascript
jQuery中toggle()函数的使用实例
Apr 17 Javascript
自动完成的搜索框javascript实现
Feb 26 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
Oct 24 Javascript
浅谈EasyUI常用控件的禁用方法
Nov 09 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
Jul 23 Javascript
JS动态添加的div点击跳转到另一页面实现代码
Sep 30 Javascript
NProgress显示顶部进度条效果及使用详解
Sep 21 Javascript
JS实现购物车基本功能
Nov 08 Javascript
关于vue-router-link选择样式设置
Apr 30 Vue.js
微信小程序 免费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 断点续传实例详解
2017/11/11 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
轻轻松松学习JavaScript
2007/02/25 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
2012/02/02 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
2013/12/01 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
angularjs 源码解析之scope
2016/08/22 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
JS ES6多行字符串与连接字符串的表示方法
2017/04/26 Javascript
javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
2018/02/05 Javascript
js数据类型检测总结
2018/08/05 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
Python发送email的3种方法
2015/04/28 Python
Python读写配置文件的方法
2015/06/03 Python
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
Python supervisor强大的进程管理工具的使用
2019/04/24 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
django中间键重定向实例方法
2019/11/10 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
python 实现性别识别
2020/11/21 Python
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
奢华时尚的独特视角:La Garçonne
2018/06/07 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
巴西购物网站:Submarino
2020/01/19 全球购物
详细的本科生职业生涯规划范文
2014/09/16 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书