【发布时间】:2021-05-08 09:17:35
【问题描述】:
我有一个部分,其中左侧 div 是固定的,右侧 div 是可滚动的,但右侧 div 内容甚至在滚动顶部到达该部分之前滚动。我希望右 div 仅在到达 div 的顶部或 div 的底部时滚动(从底部向上滚动时),但它随时滚动(不一致 - 当我快速滚动时,它开始在该部分的中间滚动,等等)。
当我快速向上或向下滚动时,它甚至会跳过此部分,但我希望它永远不会被跳过。
尝试快速和慢速滚动。滚动可以随时工作:
代码:
.outer_div {
display: flex;
position: relative;
height: 600px;
overflow-y: scroll;
width: 100%;
}
.scroll-content-left {
position: sticky;
flex: 1 0 65%;
top: 0;
display: flex;
align-items: center;
justify-content: center;
}
.scroll-content-left>div {
height: 200px;
width: 400px;
background-color: black;
}
.scroll-content-right {
position: relative;
height: 100%;
right: 0;
flex: 1 0 35%;
}
<div style="height: 600px; background-color: blue;"></div>
<div class="outer_div">
<div class="scroll-content-left">
<div></div>
</div>
<div class="scroll-content-right">
<div>
text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>text<br>
</div>
</div>
</div>
<div style="height: 600px; background-color: yellow;"></div>
【问题讨论】:
-
你想要的是强制用户在滚动页面外部之前滚动整个
<div class="scroll-content-right">,对吧? -
@Riccardo 是的。加上窗口只有在到达
<div class="outer_div">的顶部后才能滚动 -
我无法理解您面临的问题,所以我将描述我所看到的:
body元素(“外部滚动条”)上有一个滚动条,而.scroll-content-right元素(“内部滚动条”)。微不足道,它们彼此独立:having one doesn't necessitate having the other.,滚动一个不会影响另一个。那么它会随心所欲地滚动是什么意思?你希望一些 js 代码可以工作吗? -
source.co/how-hydropanels-work @OfirD 如果您查看此网站并向下滚动,您将能够看到我想要的确切功能。
scroll-content-right仅在滚动顶部到达其 div 的顶部时才开始滚动(对我来说,这个 div 是outer_div)。但是使用我的代码,如果我滚动得非常快,它只会跳过outer_div(这意味着scroll-content-right不会滚动。它会跳过它)并滚动到页面底部。如果我滚动得很慢,scroll-content-right在滚动顶部到达outer_div的顶部之前开始滚动。 -
如果我的回答帮助您解决了您的问题,您能否通过勾选左侧的 V 图标将其标记为已接受?
标签: javascript html jquery css flexbox