Bootstrap模态框(modal)垂直居中的实例代码


Posted in Javascript onAugust 18, 2016

Bootstrap官网下载:http://v3.bootcss.com/

今天就在使用Bootstrap框架中遇到的一个问题分享一下,在产品开发的过程中使用了大量的弹出窗口(modal)。

刚开始学习使用的过程中就发现此窗口不能垂直居中,总是偏上,并且不能拖动,看了一下使用说明也没有提供过多的属性设置和方法,就这样使用默认的方式一直用着。最近,客户却提出了一个要求:能不能让弹出窗口居中,因为一些小的窗口偏上总感觉整体页面失衡,大一点的还过得去。

因为之前对Bootstrap也不是很熟悉,便开始baidu、google,发现只有很少的解决方案,如下:

$("#myModal").modal().css({
"margin-top": function () {
return - ($(this).height() / 2);
}
});

参考地址:http://www.g2w.me/2012/06/bootstrap-modal-shown-in-the-center/

这种方法自己试了一下,并不能完全居中,并且窗口的大小不一样的话,每次显示的margin-top值也会改变,遮盖层还会出现滚动条,效果也不好看。

自己也试了改了几种方式也不容乐观,发现在窗口弹出之前是获取不到$(this).height()的值,本想着是用($(window).height()-$(this).height())/2,发现还是不可行。

最终只能研究一下源码了,发现可以在bootstrap.js文件900行后面添加如下代码,便可以实现垂直居中。

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";
}
});

页面代码如下:

<div>
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Launch demo modal
</button>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
</div>

 效果图如下:

Bootstrap模态框(modal)垂直居中的实例代码

以上所述是小编给大家介绍的Bootstrap模态框(modal)垂直居中的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
用JQuery 判断某个属性是否存在hasAttr的解决方法
Apr 26 Javascript
jQuery实现可拖动的浮动层完整代码
May 27 Javascript
JS脚本defer的作用示例介绍
Jan 02 Javascript
百度移动版的url编码解码示例
Apr 29 Javascript
javascript中setAttribute()函数使用方法及兼容性
Jul 19 Javascript
探究JavaScript中的五种事件处理程序方式
Dec 07 Javascript
JavaScript html5 canvas实现图片上画超链接
Oct 20 Javascript
Vue 中批量下载文件并打包的示例代码
Nov 20 Javascript
vue2.0实现前端星星评分功能组件实例代码
Feb 12 Javascript
angularjs下ng-repeat点击元素改变样式的实现方法
Sep 12 Javascript
JavaScript Math对象和调试程序的方法分析
May 13 Javascript
Vue中父子组件的值传递与方法传递
Sep 28 Javascript
js 获取站点应用名的简单实例
Aug 18 #Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
Aug 18 #Javascript
js修改onclick动作的四种方法(推荐)
Aug 18 #Javascript
AngularJS 整理一些优化的小技巧
Aug 18 #Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
Aug 18 #Javascript
js获取form表单所有数据的简单方法
Aug 18 #Javascript
Javascript中浏览器窗口的基本操作总结
Aug 18 #Javascript
You might like
基于mysql的论坛(4)
2006/10/09 PHP
自定义Laravel (monolog)日志位置,并增加请求ID的实现
2019/10/17 PHP
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
浅析JS中document对象的一些重要属性
2014/03/06 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
Vue源码探究之状态初始化
2018/11/14 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
详解Vue中CSS样式穿透问题
2019/09/12 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
python3简单实现微信爬虫
2015/04/09 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
用不到50行的Python代码构建最小的区块链
2017/11/16 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
Python解决八皇后问题示例
2018/04/22 Python
Django框架基础模板标签与filter使用方法详解
2019/07/23 Python
详解Python是如何实现issubclass的
2019/07/24 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
网络维护管理员的自我评价分享
2013/11/11 职场文书
学校消防演习方案
2014/02/19 职场文书
英文求职信范文
2014/05/23 职场文书
部队2014年终工作总结
2014/11/27 职场文书
2015年银行工作总结范文
2015/04/01 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
2015年度企业工作总结
2015/05/21 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
jQuery实现影院选座订座效果
2021/04/13 jQuery
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
vue封装数字翻牌器
2022/04/20 Vue.js