您好,欢迎来到爱若养生。
搜索
您的当前位置:首页如何对Bootstrap模态框垂直居中处理

如何对Bootstrap模态框垂直居中处理

来源:爱若养生


今天教给大家如何对Bootstrap 模态框垂直居中处理,希望大家耐心学习哦。

目前bootstrap的版本是3.x,在当前版本中对于bootstrap modal(模态框)没有提供垂直居中的属性。

如果想让modal再垂直方向居中,目前需要自己处理。

方案1. 在modal显示成功后,重置margin-top的位置

<p class="modal " id="myModal">
 <p class="modal-dialog">
 <p class="modal-content">
 <p class="modal-header">
 <button class="close" data-dismiss='modal'>×</button>
 <h4 class="modal-title">测试模态框标题</h4>
 </p>
 <p class="modal-body">
 <p>内容…</p>
 </p>
 <p class="modal-footer">
 <button class="btn btn-default" data-dismiss='modal'>关闭</button>
 </p>
 </p>

 </p>
 </p>

 <button class="btn btn-primary" data-toggle='modal' data-target='#myModal'>
 点击测试弹框
 </button>

加载成功事件监听:

$('#myModal').on('shown.bs.modal', function () {
 var $this = $(this);
 var dialog = $this.find('.modal-dialog');

 //此种方式,在使用动画第一次显示时有问题
 //解决方案,去掉动画fade样式
 var top = ($(window).height() - dialog.height()) / 2;
 dialog.css({
 marginTop:top
 });
});

方案2.修改源代码,在源码中,提前设置margin-top的位置(推荐)

注:这种方式在使用动画fade时显示正常。

修改源代码,在设置dialog位置的地方

 Modal.prototype.adjustDialog = function () {
 var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight

 this.$element.css({
 paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
 paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
 })

 // 是弹出框居中。。
 var $modal_dialog = $(this.$element[0]).find('.modal-dialog');
 var m_top = ( $(window).height() - $modal_dialog.height() )/2;
 $modal_dialog.css({'margin': m_top + 'px auto'});
 }

Copyright © 2019- areg.cn 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务