存在模态但 body 仍在滚动
Modal present but body still scrolls
我正在使用 React 并试图在我的模式打开时阻止我的 body 滚动。
我看过很多关于这个的帖子,都建议添加 overflow: hidden
作为解决方案,但我似乎无法让它工作。
仅供参考 - 我的示例是一个简单的表示,其中模态被强制打开并且暂时没有动态变量。我只是想弄清楚这个测试用例,以便我可以集成到我的代码中。
组件
export default function App() {
return (
<div className="App modal-open">
<h1>Hello CodeSandbox</h1>
<br />
... <!-- Added multiple <br/>s to force scrollable body -->
<h2>Start editing to see some magic happen!</h2>
<div className="modal-container">
<div className="modal-content">My modal</div>
</div>
</div>
);
}
CSS
.modal-open {
background: red;
overflow: hidden;
overflow-y: hidden;
}
.modal-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.6);
}
.modal-content {
position: fixed;
background: white;
width: 80%;
height: auto;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
要解决这个问题,您可以在 css 上添加一个 body
选择器并放置 overflow:hidden
.
然后您可以根据需要有条件地添加逻辑。
我正在使用 React 并试图在我的模式打开时阻止我的 body 滚动。
我看过很多关于这个的帖子,都建议添加 overflow: hidden
作为解决方案,但我似乎无法让它工作。
仅供参考 - 我的示例是一个简单的表示,其中模态被强制打开并且暂时没有动态变量。我只是想弄清楚这个测试用例,以便我可以集成到我的代码中。
组件
export default function App() {
return (
<div className="App modal-open">
<h1>Hello CodeSandbox</h1>
<br />
... <!-- Added multiple <br/>s to force scrollable body -->
<h2>Start editing to see some magic happen!</h2>
<div className="modal-container">
<div className="modal-content">My modal</div>
</div>
</div>
);
}
CSS
.modal-open {
background: red;
overflow: hidden;
overflow-y: hidden;
}
.modal-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.6);
}
.modal-content {
position: fixed;
background: white;
width: 80%;
height: auto;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
要解决这个问题,您可以在 css 上添加一个 body
选择器并放置 overflow:hidden
.
然后您可以根据需要有条件地添加逻辑。