当 页面滚动条 触发时候 不让 body 滚动 让 子div滚动
时间: 2023-11-25 14:04:14 浏览: 67
你可以使用CSS和JavaScript来实现这个功能。
首先你需要在CSS中将body的overflow属性设置为hidden,这样就可以禁止整个页面的滚动了:
```css
body {
overflow: hidden;
}
```
然后你需要为子div添加一个自定义的样式,比如scrollable,用来控制子div的滚动:
```css
.scrollable {
overflow-y: scroll;
}
```
最后,你需要使用JavaScript来切换body和子div的样式。当滚动条触发时,将body的样式设置为hidden,同时将子div的样式设置为scrollable。当滚动条消失时,将body的样式设置为auto,同时将子div的样式移除:
```javascript
// 获取子div
var div = document.getElementById("yourDivId");
// 监听滚动条事件
window.addEventListener("scroll", function () {
// 判断滚动条状态
if (window.scrollY > 0) {
// 禁止body滚动
document.body.style.overflow = "hidden";
// 启用子div滚动
div.classList.add("scrollable");
} else {
// 启用body滚动
document.body.style.overflow = "auto";
// 禁止子div滚动
div.classList.remove("scrollable");
}
});
```
注意,这段代码中的“yourDivId”是你需要替换为你的子div的id。
阅读全文