我有一个带有大量信息的模态的页面,所以你需要滚动。此模态包含指向第二个模态的链接。
当我
模态1失去滚动(仍然有一个滚动条,但它没有做任何事情)。相反,模态保持在打开模态2时的位置。
我首先使用js关闭背景模态(但是这会在第二个模态上滚动)。似乎每当我尝试打开/关闭多个模态时,我总是会遇到滚动问题。
有关如何处理此事的任何建议吗?
答案 0 :(得分:17)
对我有用的解决方案是:
$('.modal').on("hidden.bs.modal", function (e) {
if ($('.modal:visible').length) {
$('body').addClass('modal-open');
}
});
答案 1 :(得分:7)
添加
.modal { overflow: auto !important; }
致CCS
。
如果没有您的代码,我会继续创建此jsFiddle来重新创建您的问题,或者至少是一个非常类似的问题。添加您的代码,我将测试这是否有效。
将该行添加到CSS修复了此问题,如此jsFiddle所示。
从github上的this thread获取的解决方案也提供了其他解决方案。
答案 2 :(得分:3)
$(document).on('hidden.bs.modal', '.modal', function () {
$('.modal:visible').length && $(document.body).addClass('modal-open');
});
答案 3 :(得分:2)
这是解决方案:
<script>
$('#id_ofyou_secondary_modal').on('hidden.bs.modal', function (e) {
$('body').addClass('modal-open');
});
</script>
注意&#34;#idofyousecondarymodal&#34;是二级或三级或无限模态的id。但绝不能写出第一个模态的ID。
示例我有2个模态:
<div id="mymodal1" class="modal fade in" style="display:none;">
.
.
.
.
</div>
<div id="mymodal2" class="modal fade in" style="display:none;">
.
.
.
.
</div>
然后脚本将是:
<script>
$('#mymodal2').on('hidden.bs.modal', function (e) {
$('body').addClass('modal-open');
});
</script>
jus添加此代码并正常工作。
答案 4 :(得分:1)
我尝试了以前的解决方案,但不适用于我的用例:
这对我来说是可行的:
var bootstrapModalCounter = 0; //counter is better then using visible selector
$(document).ready(function () {
$('.modal').on("hidden.bs.modal", function (e) {
--bootstrapModalCounter;
if (bootstrapModalCounter > 0) {
//don't need to recalculate backdrop z-index; already handled by css
//$('.modal-backdrop').first().css('z-index', parseInt($('.modal:visible').last().css('z-index')) - 10);
$('body').addClass('modal-open');
}
}).on("show.bs.modal", function (e) {
++bootstrapModalCounter;
//don't need to recalculate backdrop z-index; already handled by css
});
});
.modal {
/*simple fix for multiple bootstrap modal backdrop issue:
don't need to recalculate backdrop z-index;
https://stackoverflow.com/questions/19305821/multiple-modals-overlay/21816777 */
background: rgba(0, 0, 0, 0.5);
}
这是@Keeleon修改的小提琴,用于修复https://jsfiddle.net/4m68uys7/
这是github问题https://github.com/nakupanda/bootstrap3-dialog/issues/70
答案 5 :(得分:0)
将以下内容添加到 CSS :
.modal
{
overflow: scroll !important;
}