javascript - 打开多个弹出窗口时如何防止背景滚动
问题描述
我调用了弹出窗口Products
,当用户单击任何产品时,会打开一个新的弹出窗口,其中包含product information
. 使用此 CSS 打开弹出窗口时,我防止背景滚动:
body.modal-open {
position: fixed;
}
当用户关闭弹出窗口时,我删除了此position
属性,以便背景可以再次开始滚动。
问题是,当我打开products
弹出窗口时,背景停止滚动(这很好),然后当我打开product information
弹出窗口时,背景仍然停止(这也很好),但是当用户关闭时product information
,滚动又开始了。
我想要它,这样窗口应该只在两个弹出窗口都关闭时才开始滚动。我怎样才能做到这一点?
解决方案
CSS样式属性overflow-y: hidden; 如果应用于要删除滚动的 HTML 元素,则防止背景滚动。在浏览器上尝试以下操作: a) 打开带有弹出窗口的页面。b) 应用样式溢出-y:隐藏;在要删除滚动的元素上。滚动应该消失。c)为了动态地实现这一点,您编写了 js 代码以在单击弹出触发器元素时将上述样式附加到所需元素上。只有 CSS 无法满足您的要求,因为您需要动态进行。
推荐阅读
- arrays - 在 Google 表格中组合日期和值
- arduino - ESP8266 连接失败:等待包头超时
- amazon-s3 - AWS Elemental MediaConvert - 由不同账户拥有的输出对象
- javascript - 添加数组的总和但得到 NAN
- python - 如何在参数中使用带有空格的输入参数?
- python - python:局部变量生命周期
- javascript - 路由在 node.js 和 express.js API 中不起作用
- python - Pandas - KeyError - 在嵌套循环中按索引删除行
- r - R中数学函数错误的非数字参数
- ios - SwiftUI 文本字段触发器手动提交 iOS