如何在引导程序中的页面加载时打开模式对话框

Posted

技术标签:

【中文标题】如何在引导程序中的页面加载时打开模式对话框【英文标题】:How to make modal dialog open at page load in bootstrap 【发布时间】:2014-01-19 13:32:07 【问题描述】:

在 Bootstrap 中使用 javascript 显示模态对话框很容易。

但是如何在页面加载时打开模式而不需要 document.ready 函数或主体 onload 函数?

我需要加载一个页面并打开模式。 页面加载时我不想要延迟或过渡效果。 我希望在启动时打开模式。

我看了一下modal.js,尝试在body上添加class="modal-open",没有效果。

<div class="modal in" id="journalModal" 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">&times;</button>
        <h4 class="modal-title" id="myModalLabel">modal title</h4>
      </div>
      <div class="modal-body">
         body
      </div>
    </div><!-- /.modal-content -->
  </div><!-- /.modal-dialog -->
</div><!-- /.modal -->

有可能吗? 怎么办?

【问题讨论】:

我猜这个小提琴很不错jsfiddle.net/yashhy/sj9EQ/1 【参考方案1】:

当模式变得可见时,Bootstrap 将 .in 类添加到它的容器中。因此,您可以在 CSS 中添加如下规则,并将相同的类添加到模态 - 您希望在页面加载时可见。

CSS

.modal.in 
   display:block;

HTML

<div class="modal in">visible on page load.</div>

但这些不会带来模态背景。所以你必须把它们也放在页面底部:

<div class="modal-backdrop fade in"></div>

【讨论】:

像魅力一样工作!我只需要删除淡入淡出类即可使模态背景不完全变暗。 &lt;div class="modal-backdrop in"&gt;&lt;/div&gt;【参考方案2】:

看看这个来自Andres Ilich的Launch Bootstrap Modal on page load

JS

<script type="text/javascript">    
    $(window).load(function()
        $('#myModal').modal('show');
    );
</script>

【讨论】:

作者特别要求提供一种不需要使用“需要document.ready 函数或主体onload 函数”的解决方案。我认为$(window).loadonload 大致相同,因此投反对票。 对某些人仍然有用 - 对于现代版本的 jQuery,$(window).load(... 也必须替换为 $(windows).on('load', ....) . 摆脱“淡入淡出”效果只需从模式中删除“淡入淡出”类

以上是关于如何在引导程序中的页面加载时打开模式对话框的主要内容,如果未能解决你的问题,请参考以下文章

加载 twitter 引导模式对话框时,如何防止正文滚动条和移位?

页面加载时的引导模式打开 [重复]

显示引导模式首次页面加载

如何使用内部 html 和引导程序使这个简单的 jQuery 弹出模式在页面加载时显示

在引导模式打开时调用函数

使用引导程序加载打开模式弹出窗口?