我正在尝试使用 Flexbox 创建两列,它们应该可以彼此独立地滚动。第一列也应该固定。我的大问题是,当我的鼠标指针位于导航部分内并且我上下滚动时,有时会滚动其他内容 div 而不是导航。 (重现问题非常简单。只需将导航滚动到末尾,然后进一步滚动。然后内容侧将向下滚动。) 你们中有人以前做过类似的事情并且知道问题所在吗?
<!DOCTYPE html>
<html>
<head>
<style>
*{
margin: 0px;
padding: 0px;
}
.app{
display: flex;
position: relative;
}
nav{
width: 260px;
height: 100%;
position: relative;
}
.nav-content{
width: 260px;
overflow: scroll;
height: 100%;
position: fixed;
top: 0;
left: 0;
background-color: coral;
}
.other-content{
background-color: skyblue;
flex-grow: 1;
}
</style>
</head>
<body>
<div class="app">
<nav>
<div class="nav-content">
<ul>
<li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li>
<li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li>
</ul>
</div>
</nav>
<div class="other-content">
<div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div>
<div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div>
<div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div>
</div>
</div>
</body>
</html>
最佳答案
如果你不关心browser support :
您可以使用overscroll-behavior
属性:
<!DOCTYPE html>
<html>
<head>
<style>
*{
margin: 0px;
padding: 0px;
}
.app{
display: flex;
position: relative;
flex-direction: row;
}
nav{
width: 260px;
height: 100%;
position: relative;
}
.nav-content{
width: 260px;
overflow: scroll;
height: 100%;
position: fixed;
top: 0;
left: 0;
background-color: coral;
overscroll-behavior: contain;
}
.other-content{
background-color: skyblue;
flex-grow: 1;
}
</style>
</head>
<body>
<div class="app">
<nav>
<div class="nav-content">
<ul>
<li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li>
<li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li><li>Menu</li>
</ul>
</div>
</nav>
<div class="other-content">
<div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div>
<div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div>
<div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div><div>Some Content..</div>
</div>
</div>
</body>
</html>
Javascript 解决方案:
关于html - 2 列彼此独立滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68817245/