Bootstrap 模态框垂直居中处理

拼搏现实的明天。 2022-06-05 11:46 241阅读 0赞

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

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

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

  1. <div class="modal " id="myModal">
  2. <div class="modal-dialog">
  3. <div class="modal-content">
  4. <div class="modal-header">
  5. <button class="close" data-dismiss='modal'>×</button>
  6. <h4 class="modal-title">测试模态框标题</h4>
  7. </div>
  8. <div class="modal-body">
  9. <p>内容…</p>
  10. </div>
  11. <div class="modal-footer">
  12. <button class="btn btn-default" data-dismiss='modal'>关闭</button>
  13. </div>
  14. </div>
  15. </div>
  16. </div>
  17. <button class="btn btn-primary" data-toggle='modal' data-target='#myModal'>
  18. 点击测试弹框
  19. </button>

加载成功事件监听:

  1. $('#myModal').on('shown.bs.modal', function () {
  2. var $this = $(this);
  3. var dialog = $this.find('.modal-dialog');
  4. //此种方式,在使用动画第一次显示时有问题
  5. //解决方案,去掉动画fade样式
  6. var top = ($(window).height() - dialog.height()) / 2;
  7. dialog.css({
  8. marginTop:top
  9. });
  10. });

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

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

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

  1. Modal.prototype.adjustDialog = function () {
  2. var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
  3. this.$element.css({
  4. paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',
  5. paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''
  6. })
  7. // 是弹出框居中。。。
  8. var $modal_dialog = $(this.$element[0]).find('.modal-dialog');
  9. var m_top = ( $(window).height() - $modal_dialog.height() )/2;
  10. $modal_dialog.css({'margin': m_top + 'px auto'});
  11. }

更多:

Bootstrap 弹出框modal上层的输入框不能获得焦点问题

Bootstrap Table使用整理(六)-常用操作

Bootstrap相关整理、免费主题整理

#

发表评论

表情:
评论列表 (有 0 条评论,241人围观)

还没有评论,来说两句吧...

相关阅读

    相关 bootstrap实例

    模态框(Modal)是覆盖在父窗体上的子窗体。通常,目的是显示来自一个单独的源的内容,可以在不离开父窗体的情况下有一些互动。子窗体可提供信息、交互等。 实例: 在这里我...