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 相关文章推荐
Riot.js 快速的JavaScript单元测试框架
Nov 09 Javascript
基于JQuery的cookie插件
Apr 07 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
Apr 15 Javascript
JQuery自定义事件的应用 JQuery最佳实践
Aug 01 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
May 07 Javascript
css值转换成数值请抛弃parseInt
Oct 24 Javascript
javascript错误的认识不用关心内存管理
Dec 15 Javascript
聊一聊JS中this的指向问题
Jun 17 Javascript
BootStrap中Datepicker控件带中文的js文件
Aug 10 Javascript
JS动态添加的div点击跳转到另一页面实现代码
Sep 30 Javascript
小程序实现左滑删除效果
Jul 25 Javascript
vue 设置 input 为不可以编辑的实现方法
Sep 19 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 gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
2010/05/15 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
PHP 之 写时复制介绍(Copy On Write)
2014/05/13 PHP
分享一个php 的异常处理程序
2014/06/22 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
2016/01/09 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
javascript中DOM复选框选择用法实例
2015/05/14 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
javascript记住用户名和登录密码(两种方式)
2015/08/04 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
2015/12/09 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
对于input 框限定输入值为浮点型的js代码
2017/09/25 Javascript
vue中element 上传功能的实现思路
2018/07/06 Javascript
angular4+百分比进度显示插件用法示例
2019/05/05 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
jQuery实现购物车全功能
2021/01/11 jQuery
[00:36]DOTA2上海特级锦标赛 LGD战队宣传片
2016/03/04 DOTA
python 示例分享---逻辑推理编程解决八皇后
2014/07/20 Python
Python 创建子进程模块subprocess详解
2015/04/08 Python
详解Python中的序列化与反序列化的使用
2015/06/30 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
利用Python+阿里云实现DDNS动态域名解析的方法
2019/04/01 Python
Python数据可视化实现正态分布(高斯分布)
2019/08/21 Python
html5自定义video标签的海报与播放按钮功能
2019/12/04 HTML / CSS
大学毕业生通用求职信
2013/09/28 职场文书
仓库主管的岗位职责
2013/12/04 职场文书
财务工作疏忽检讨书
2014/09/11 职场文书
格列佛游记读书笔记
2015/06/30 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
浅谈pytorch中的dropout的概率p
2021/05/27 Python
看完这篇文章获得一些java if优化技巧
2021/07/15 Java/Android
Go语言实现一个简单的并发聊天室的项目实战
2022/03/18 Golang