如何按比例滚动两个div?

时间:2015-06-08 23:58:36

标签: jquery html

我试图同步2个div的滚动行为。

示例:
This site正是我正在尝试做的事情(在底部,滚动时左右同步)。

我的尝试:
我发现这个Fiddle 有点我想要做的事情。我尝试从这个代码开始,无法到达任何地方。这是代码:

var $divs = $('#div1, #div2');
var sync = function(e){
    var $other = $divs.not(this).off('scroll'), other = $other.get(0);
    var percentage = this.scrollTop / (this.scrollHeight - this.offsetHeight);
    other.scrollTop = percentage * (other.scrollHeight - other.offsetHeight);
    setTimeout( function(){ $other.on('scroll', sync ); },10);
}
$divs.on( 'scroll', sync);

这似乎是一个很好的方法,当你有两个并排高度不均匀的div。将是一个很酷的jQuery插件来构建。

My Fiddle here

编辑1:

我能够从第一个示例链接中解析并找到部分代码,我假设处理了这个,你可以在这里看到代码的一部分:https://gist.github.com/tenold/f6b77984c27d0bde99c2

编辑2:

我能够使上述代码正常工作,但它仍然非常混乱。 http://jsfiddle.net/tenold/xquLevc0/6/

1 个答案:

答案 0 :(得分:1)

看起来你想使用
element.scrollTop / (element.scrollHeight - element.offsetHeight)
 有一个共同的百分比滚动。

您需要像已有的那样设置循环,或者定期设置scrollTop值,就像在this answer中一样。

希望有所帮助!