游客您好
第三方账号登陆
Lv.9 管理员
1366号会员,2041活跃度,2018/12/07 加入学习
  • 176发帖
  • 161主题
  • 2关注
  • 5粉丝
这个人很懒,什么也没有留下。
最新推荐更多

[Bootstrap] bootstrap使用Modal,关闭弹框遗留遮罩层

[复制链接]
风起云甬 发表于 2020-12-17 14:55:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
// 手动清除

$(".modal-backdrop").remove();

发现弹框关闭后滚动条不好使。然后f12查看,发现modal-open未关闭,之后再执行

$("body").removeClass('modal-open');

问题就可以解决了。

不过,这种方法虽然简单,但是总觉得有点土。

下面,说一下第二种方法,给第二个弹框加一个延迟:

$("#modal").modal("hide");

setTimeout(function(){//延时加载页面
      show();// modal关闭后,要展示的页面
},500);

后来询问前端的同事才知道,js虽然单线程往下执行,但当遇到样式渲染、dom操作时,就有同步异步的问题,也就是说,当$("#modal").modal("hide");执行完,但有可能modal('hide')里面的样式操作,dom操作还没有渲染完,showRation()方法就把页面刷新了或者加入了新的html,页面重新渲染,而modal可能还没有执行完样式删除,modal有样式残余,就出现了这个问题。



• 本内容来源互联网,如涉及版权问题请及时联系站长
• 为防止代码解析,除代码框内<>为正常,其余请重新替换<>尖括号

发布资源 快速回复 站点服务大厅 搜索 官方群