js滚动条之间联动

<style>
.scrollcontainer,.demo{
    height: 842px;
    width: 300px;
    position: absolute;
    overflow-y:auto;
    background-color: red; 
}
.scrollbasis,.demobasis{
    height: 1001px;
    width: 3px;
}
.demo{
    left: 500px;
}
</style>
<div class="scrollcontainer">
    <div class="scrollbasis"></div>
</div>
<div class="demo">
    <div class="demobasis"></div>
</div>
<script>
$(".demo").scroll(function(){
        var domsctop=$(".demo").scrollTop();
    $(".scrollcontainer").scrollTop(domsctop);
});
$(".scrollcontainer").scroll(function(){
    var scdomsctop=$(".scrollcontainer").scrollTop();
    $(".demo").scrollTop(scdomsctop);
});
</script>

如上,为了实现两个div的滚动条联动,但是如果这么写会出现死循环。求大神给个解决方案。

阅读 6k
2 个回答

给你提供一个想法。就是当,你触发的时候,做一个标记,等这个标记解除之后100秒,触发标记的这个滚动条,才会继续监听动作

你这代码复杂化了,其实可以如下。原理是两个滚动其实是一个对象,那么绑定触发后,必然会同步,且又是自身。

html

 <div class="a demo"></div> <div class="b demo"></div>

css

.a, .b{       height: 300px;
    width: 300px;
    position: absolute;
    overflow-y:auto;
    background-color: red;  }
.b {     left:500px; }

js

$(".demo").scroll(function(){
    $(".demo").scrollTop($(this).scrollTop()); 
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题