bootstrap 模态窗口 多重/多个弹窗滚动条补丁

啊栈 Javascript, jQuery 131 次浏览 没有评论

由于bootstrap的模态窗口默认不支持多次弹出, 在关闭的时候会有滚动条消失的问题. 经过观察和查看源码, 发现在开启和关闭的时候会在body上增加/减少一个”modal-open”的class,所以只要在关闭的时候判断一下是否还有没关闭的窗口, 如果还有未关闭的, 则重新给body加上”modal-open”即可.

以下是代码:

$('body').on('hide.bs.modal', 'div.modal[role]', function (e) {
    var len = $('div.modal[role]').length;
    if (len > 1) {
        setTimeout(function () {
            $("body").addClass("modal-open");
        }, 500);
    }
});

这里处理的有点麻烦, 做了个延迟500ms, 是由于”hide.bs.modal”的触发时机过早, 模态窗体自带的”hidden.bs.modal”无法像上面代码那样触发,(麻烦哪位路过的大神给指个路.). 在事件触发之后才执行了removeClass(“modal-open”) . 关于这个, 大家可以去看下bootstrap.js里面的源码.搜索 “modal-open”即可找到相关代码.

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Go