Bootstrap 模态在 iPhone 上不起作用

Posted

技术标签:

【中文标题】Bootstrap 模态在 iPhone 上不起作用【英文标题】:Bootstrap modal not working on iPhone 【发布时间】:2018-08-30 18:24:35 【问题描述】:

这是模态:

<div class="modal fade" id="modalInsertAgression" tabindex="-1" role="dialog" aria-labelledby="modalInsertAgression" aria-hidden="true">
<div class="modal-dialog" role="document">
    <div class="card">

        <form id="formInsertarAgresion" action="% url 'insertarAgresion' %" role="form">% csrf_token %
            <div class="card-header card-header-icon" data-background-color="rose">
                <i class="material-icons">place</i>
            </div>

            <div class="card-content">
                <h4 class="card-title">Test</h4>
                <p class="text-center" id="msgModalInsertAgression"></p>
                <br>

                <div class="input-group">
                    <span class="input-group-addon"><i class="material-icons">date_range</i></span>
                    <div class="form-group"> agresionForm.fecha </div>
                </div>
            </div>

            <div class="card-footer pull-right">
                <button id="btnInsertModalInsertAgression" type="submit" class="btn btn-fill btn-rose">Insertar</button>
                <button id="btnCloseModalInsertAgression" type="button" class="btn btn-default btn-fill" data-dismiss="modal">Cancelar</button>
            </div>
        </form>

    </div>
</div>

我打开它:

$("#modalInsertAgression").show();

在 iPhone 上不工作,当模态出现时背景一直是黑色的并且失去焦点,你不能点击模态或按钮。

编辑:模态仅适用于$("#modalInsertAgression").modal(backdrop: false);,但我不想丢失黑色背景...

【问题讨论】:

【参考方案1】:

试用(在 iOS 11 上测试):

$('#modalInsertAgression').modal('show');

片段:

$('#modalInsertAgression').modal('show');
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="modal fade" id="modalInsertAgression" tabindex="-1" role="dialog" aria-labelledby="modalInsertAgression" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="card">
      <form id="formInsertarAgresion" action="% url 'insertarAgresion' %" role="form">% csrf_token %
        <div class="card-header card-header-icon" data-background-color="rose">
          <i class="material-icons">place</i>
        </div>
        <div class="card-content">
          <h4 class="card-title">Test</h4>
          <p class="text-center" id="msgModalInsertAgression"></p>
          <br>
          <div class="input-group">
            <span class="input-group-addon"><i class="material-icons">date_range</i></span>
            <div class="form-group"> agresionForm.fecha </div>
          </div>
        </div>
        <div class="card-footer pull-right">
          <button id="btnInsertModalInsertAgression" type="submit" class="btn btn-fill btn-rose">Insertar</button>
          <button id="btnCloseModalInsertAgression" type="button" class="btn btn-default btn-fill" data-dismiss="modal">Cancelar</button>
        </div>
      </form>
    </div>
  </div>

【讨论】:

它不适用于 iPhone 6 ios 11.2.6 仅适用于 $("#modalInsertAgression").modal(backdrop: false); 但它失去了黑色背景... 它是哪个引导程序版本?您是否能够至少为桌面创建一个工作小提琴,因为共享代码并非如此。顺便说一句,使用背景方法,您确实可以去除黑色背景。 是bootstrap 3.3.7 Jota,在这种情况下,您在上面有一个工作示例,其中包含您共享的代码片段,如果您仍然无法修复它,也许可以共享更多代码或网址?【参考方案2】:

我在这里找到了解决方案:

如果模态容器具有固定或相对位置或在 具有固定或相对位置的元素会发生此行为。 Bootstrap modal appearing under background

【讨论】:

以上是关于Bootstrap 模态在 iPhone 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥 pull-right 类在 bootstrap 版本 4.1.0 上不起作用? [复制]

Bootstrap 折叠按钮在智能手机上不起作用

Bootstrap popover 关闭功能在 iphone 中不起作用

push 在以模态方式呈现的控制器上不起作用

Bootstrap 下拉菜单在 wordpress 上不起作用

为啥我的输入在移动设备上不起作用?