您可以
element.scrollTop / (element.scrollHeight -element.offsetHeight)用来获取百分比(它将是
0和之间的一个值
1)。因此,您可以将其他元素
(.scrollHeight -.offsetHeight)与此值乘以进行比例滚动。
为了避免在循环中触发侦听器,您可以暂时取消绑定该侦听器,设置
scrollTop并重新绑定。
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); // Firefox workaround. Rebinding without delay isn't enough. setTimeout( function(){ $other.on('scroll', sync ); },10);}$divs.on( 'scroll', sync);


