`

bootstrap 多层modal关闭底层modal滚动条失效问题

阅读更多

bootstrap中如果在模态框弹出模态框,即多重模态框,那么在关闭模态框后,上一级的模态框无法滚动,而且滚动事件会穿透到body层。

 

原理是只要有modal被打开,body会被赋予modal-open这个类,使其overflow变为hidden,无法滚动;而只要有modal被关闭,body的modal-open这个类就会被remove掉。

 

解决方案:在非最上层modelmodal监听隐藏事件,为body重新添加modal-open类:

$(w).on("hidden.bs.modal", function () {

        $(this).removeData("bs.modal");

        $(document.body).addClass("modal-open");  

        $(w).find("div.modal-content").html("");

    });

 

model封装:

function openModal(url, width, height, popId, callBack) {

    if (!popId) {

        var random = Math.floor(Math.random() * 100);

        popId = "viewWindw_" + random;

    }

    var templet = '<div id="' + popId + '" class="modal fade" aria-hidden="true" aria-labelledby="' + popId + 'Label' + '">'

        + '<div class="modal-dialog" role="document">'

        + '<div class="modal-content">'

        + '<div class="modal-body"></div>'

        + '</div>'

        + '</div>'

        + '</div>';

    $(document.body).append(templet);

    if (height)

        $('.modal-dialog').height(height);

    if (width)

        $('.modal-dialog').width(width);

 

    var w = "#" + popId;

    $(w).modal({

        remote: url

    });

 

    $(w).on("hidden.bs.modal", function () {

        $(this).removeData("bs.modal");

        $(w).find("div.modal-content").html("");

    });

 

    if (null != callBack && isFunction(callBack)) {

        $(w).on("loaded.bs.modal", callBack);

    }

    return w;

}

 

分享到:
评论

相关推荐

    bootstrap多层模态框滚动条消失的问题

    bootstrap 打开多层模态框的情况下,关闭任意一个模态框,都会导致其余模态框的滚动条消失。 监测html发现,当打开模态框时,会给 body 元素加一个 modal-open 的 class,而在 bootstrap.css 中,有这样一条 css ...

    bootstrap-modal.zip

    bootstrap-modal 扩展了 Bootstrap 内置的 modal 以提供附加功能,引入了 ModalManager 类可处理多个 modal 并侦听它们的事件。 一个简单的 ModalManager 的创建方式: $('body').modalmanager('loading'); ...

    PyPI 官网下载 | django-bootstrap-modal-forms-1.4.0.tar.gz

    标题"PyPI 官网下载 | django-bootstrap-modal-forms-1.4.0.tar.gz"指的是从Python Package Index (PyPI) 官方网站上下载的一个软件包,名为`django-bootstrap-modal-forms`,版本为1.4.0,其存储格式是tar.gz压缩...

    bootstrap-modal

    Bootstrap Modal是基于jQuery的一款强大的模态对话框插件,它被广泛应用于Web开发中,以提供弹出式窗口的功能,通常用于显示警告、确认信息、展示详细内容或进行表单输入等场景。这个插件是Bootstrap框架的一个核心...

    bootstrap表格固定表头并且tbody部分添加滚动条

    Bootstrap表格在设计网页时是一种非常常用的组件,尤其在处理大量数据时,为了提供更好的用户体验,我们经常需要在tbody部分添加竖向滚动条,同时保持表头固定不动。这样,当用户滚动内容时,表头始终保持可见,便于...

    react-bootstrap-modal, jschr Bootstrap 模式更好的反应端口.zip

    react-bootstrap-modal, jschr Bootstrap 模式更好的反应端口 响应 Bootstrap 模式部分是 Bootstrap Modal的jschr 。 Reimplements模式下的Twitter Bootstrap 模式组件。 基于反应引导团队的原始工作。注意:如果你...

    Bootstrap应用实践:Bootstrap Modal

    移动WEB应用实践:Bootstrap应用实践之Bootstrap Modal文章的示例代码 文章地址:http://blog.csdn.net/rowisdom/article/details/17004701

    Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题

    通过这种方法,我们可以有效地解决Bootstrap Modal的多弹窗叠加引起的滚动条遮罩阴影问题,同时保持Modal功能的正常运行,提供良好的用户体验。如果在实际应用中遇到其他问题,可以进一步研究Bootstrap的文档或者...

    vue-bootstrap-modal:可重用的bootstrap-modal Vue组件,用于简单模式

    Vue Bootstrap Modal是一个可重用的组件,您可以在需要显示简单的模式弹出窗口时在整个项目中使用。 因此,您不必每次都想使用引导程序模式时重复相同的html代码。 目录 开始吧 安装 npm install --save @...

    bootstrap文字上下滚动,类似新闻滚动

    本文档适用于list-group+list-group-item组合形式,但不适合在item中再次放置col样式,该问题本人暂时未解决,有解决方法请及时告知本人。

    基于Bootstrap V3的Modal 进行 Dialog 二次封装 原创文章

    Bootstrap V3中的Modal组件是一个非常实用的特性,它允许开发者在网页上创建模态对话框,无需离开当前页面即可展示信息、获取用户输入或者执行其他交互操作。在本篇文章中,作者进行了对Modal的二次封装,创建了一个...

    bootstrap-modal-2.2.6

    Bootstrap模态框(Modal)是Web开发中一个非常重要的组件,尤其在构建用户交互界面时。Bootstrap是一款流行的前端框架,以其简洁、响应式的设计和强大的功能而受到开发者喜爱。在Bootstrap 2.2.6版本中,模态框提供...

    jQuery Bootstrap响应式新闻列表文字上下滚动特效

    标题中的“jQuery Bootstrap响应式新闻列表文字上下滚动特效”指的是使用jQuery库和Bootstrap框架来创建一个适应不同设备屏幕尺寸的新闻列表,同时实现文字的上下滚动效果。这种特效常见于网站的新闻或更新部分,...

    好看的滚动条样式

    好看的滚动条样式; HEIGHT: 140;OVERFLOW: scroll; scrollbar-3dlight-color:#595959; scrollbar-arrow-color:#FFFFFF; scrollbar-base-color:#CFCFCF; scrollbar-darkshadow-color:#FFFFFF; scrollbar-face-color:#...

    BootStrap中的模态框(modal,弹出层)功能示例代码

    在Bootstrap框架中,模态框(Modal)是一种非常实用的组件,它允许用户在当前页面上弹出一个对话框,而无需离开当前上下文。模态框提供了丰富的交互性和自定义选项,使得开发者能够轻松创建各种类型的弹出窗口,如...

    Laravel-Bootstrap-Modal-Form, 使用AJAX提交模式中的Bootstrap 表单,使用 Laravel 验证.zip

    Laravel-Bootstrap-Modal-Form, 使用AJAX提交模式中的Bootstrap 表单,使用 Laravel 验证 Laravel-Bootstrap-Modal-Form你的Laravel 应用程序的表单验证扩展插件。 在将 Bootstrap 窗体嵌入到 Bootstrap/jquery模式...

    bootstrap-modal-rails:Rails gemified bootstrap-modal 扩展

    Bootstrap::Modal::Rails 为默认类提供的 Rails Asset Gem安装将这些行添加到应用程序的Gemfile : ### Rails 3 or previousgroup :assets do gem 'bootstrap-modal-rails'end### Rails 4gem 'bootstrap-modal-rails...

    30-bootstrap-modal-animation-effects.zip_bootstrap

    在Bootstrap中,模态窗口通过`.modal`类进行定义,并通过`.modal-dialog`和`.modal-content`类来构建其结构。默认情况下,模态窗口具有平滑的淡入淡出动画,但这个压缩包提供的是30种不同的动画效果,旨在增强用户...

    Bootstrap Modal对话框如何在关闭时触发事件

    首先,Bootstrap Modal提供了多个与模态框生命周期相关的事件,例如`show.bs.modal`(打开前触发)、`shown.bs.modal`(打开后触发)、`hide.bs.modal`(关闭前触发)以及`hidden.bs.modal`(关闭后触发)。...

Global site tag (gtag.js) - Google Analytics