我已经直接从Bootstrap示例中使用了我的模态代码,并且只包括Bootstrap .js(而不是Bootstrap -modal.js)。但是,我的模态出现在灰色渐隐(背景)下面,是不可编辑的。

这是它的样子:

这是重现这个问题的一种方法。该代码的基本结构是这样的:

<body>
    <p>Lorem ipsum dolor sit amet.</p>    

    <div class="my-module">
        This container contains the modal code.
        <div class="modal fade">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-body">Modal</div>
                </div>
            </div>
        </div>
    </div>
</body>
body {
    padding-top: 50px;
}

.my-module {
    position: fixed;
    top: 0;
    left: 0;
}

你知道为什么会这样吗或者我能做些什么来弥补吗?


当前回答

$('.modal').insertAfter($('body'));

其他回答

这种行为有时发生在有未关闭标记时,尤其是未关闭</div>。你可以检查你的模式的位置,确保所有的标签都是正确关闭的,或者更好的是将div模式移动到页面底部,在</body>标签框之前

我只在iOS设备上遇到过类似的问题。

解决方案是从父元素中删除-webkit-overflow-scrolling: touch

这将覆盖所有的模态,而不会搞乱任何动画或预期的行为。

$(document).on('show.bs.modal', '.modal', function () {
  $(this).appendTo('body');
});

在我的情况下,我有一个包装与以下:

.wrapper { margin: 0 auto; position:relative; z-index:1;overflow:hidden;}

只删除了z-index:1,不知道为什么要修复这个问题。当然也可以移除相对位置,但我需要它。

$('.modal').insertAfter($('body'));