这个问题已经在这里有了答案: > On div scroll activate another div’s scroll 1个
我正在使用两个div元素
当用户滚动div#element-A时,我希望#element-A自动滚动到与#element-b相同的位置
我当前的代码如下:
var currentPlan = $('#current-A'),optionsPlan = $('#current-B'),combinedScroll = optionsPlan.scrollTop();
optionsPlan.scroll(function() {
currentPlan.scroll();
});
#element-A,#element-B {
width: 50%;
height: 100vh;
float: left;
overflow: auto;
}
#element-A {
background: orange;
}
#element-B {
background: yellow;
}
.content {
padding-bottom: 100vh;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="element-A">
<div class="content">
<p>content</p>
<p>content</p>
<p>content</p>
<p>content</p>
<h1 id="header-one-target" Header One</h1>
</div>
</div>
<div id="element-B">
<div class="content">
<p>content</p>
<p>content</p>
<p>content</p>
<p>content</p>
<h1 id="animate-hd-b">Header Two</h1>
</div>
</div>
我知道我在jQuery中缺少一些简单的东西,但似乎找不到解决方案.
最佳答案
let target = $("#current-B")[0];
$("#current-A").scroll(function() {
target.scrollTop = this.scrollTop;
});
section {
display: flex;
justify-content: space-between;
}
.scroll-Box {
width: 200px;
height: 200px;
overflow-y: scroll;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section>
<div class="scroll-Box" id="current-A">
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
</div>
<div class="scroll-Box" id="current-B">
<p>item item item item item item item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
<p>item</p>
</div>
<section>