html - 存在覆盖时如何禁用滚动?

标签 html css overflow overlay absolute

考虑一个内容溢出的容器。用户可以在两个方向上滚动以检查内容。

当用户按下一个按钮(在下面的演示中缺失)时,整个容器被一个带有侧边栏的覆盖层覆盖。

此时,滚动是不可取的。

我怎样才能禁用它?

.container {
  width: 200px;
  height: 100px;
  border: 1px solid black;
  overflow: auto;
  position: relative;
}

.line {
  white-space: nowrap;
}

.overlay {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: rgba(0, 0, 0, 0.8);
}

.sidebar {
  position: absolute;
  top: 0;
  bottom: 0;
  right: 0;
  width: 100px;
  display: grid;
  place-items: center;
  background-color: #ccc;
}
<div class="container">
  <div>
    <div class="line">Hello World, Hello World, Hello World</div>
    <div class="line">Hello World, Hello World, Hello World</div>
    <div class="line">Hello World, Hello World, Hello World</div>
    <div class="line">Hello World, Hello World, Hello World</div>
    <div class="line">Hello World, Hello World, Hello World</div>
    <div class="line">Hello World, Hello World, Hello World</div>
    <div class="line">Hello World, Hello World, Hello World</div>
    <div class="line">Hello World, Hello World, Hello World</div>
    <div class="line">Hello World, Hello World, Hello World</div>
    <div class="line">Hello World, Hello World, Hello World</div>
    <div class="line">Hello World, Hello World, Hello World</div>
  </div>
  <div class="overlay">
    <div class="sidebar">Sidebar</div>
  </div>
</div>

最佳答案

你可以在点击按钮时添加事件

.container

overflow: hidden;

在触发叠加层时的同一事件上,希望这有帮助。

关于html - 存在覆盖时如何禁用滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59658404/

相关文章:

css - 警告字体预加载在窗口加载事件后的几秒钟内未使用

javascript - 尝试优化我的背景更改,并尝试让它们淡入

java - 计算浏览器文本布局

php - 我正在尝试通过 href 将一个值传递给 php 页面,以从 mysql 数据库的那一行检索其余数据

html - 获取一个文本框以填充其容器 div 宽度的 100%

javascript - 为什么垂直滚动卡在移动 View 中?

jquery - 在 jQuery 中将下拉列表最大高度限制为屏幕高度

html - 在 Form-Inline 中对齐标签和文本框

C fgets - 捕获溢出的简单方法?

css - 如何在调整大小时阻止 <div> 的内容开始新行?