2013-03-06 64 views
2

我试图协调两个div的滚动,similar to this question,但是我的div都是可滚动的(而在问题中,其中一个div是控件,另一个是从站,用户可以相应地滚动以及其他重新滚动)。正确协调两个滚动区域

我的jQuery/JavaScript是:

// as the user scrolls one div, we also scroll the other 

var scrolldiv1 = $('#scrolldiv1'), 
    scrolldiv2 = $('#scrolldiv2'); 

scrolldiv1.scroll(function() { scrolldiv2.scrollTop(scrolldiv1.scrollTop()); }); 
scrolldiv2.scroll(function() { scrolldiv1.scrollTop(scrolldiv2.scrollTop()); }); 

当用户滚动使用元素的滚动条一个div,一切精美的作品。当用户在鼠标悬停在元素上时使用鼠标滚轮滚动div时,div保持同步,但滚动非常缓慢。我怀疑这两起事件都是射击事件,而且这些阵势相互争夺。

有没有人有什么建议,我可以做什么使滚动滚动像滚动条发起滚动一样快?

在此先感谢!

+0

我希望看到这个问题。你能否提供[现场示例](http://jsfiddle.net)? – 2013-03-06 18:28:37

+2

对我来说工作很好http://jsfiddle.net/nHNsK/ – 2013-03-06 18:43:39

+0

维加在jsfiddle上的例子演示了我正在经历的事情。通过滚动条滚动是活泼的,但滚动滚动的div是缓慢的。 – Timothy 2013-03-06 20:27:30

回答

0

我能够通过添加超时事件来延迟触发伴随div的滚动来解决我的问题。

scrolldiv1.scroll(function() { 
    setTimeout(function() { scrolldiv2.scrollTop(scrolldiv1.scrollTop()); }, 200); 
}); 
scrolldiv2.scroll(function() { 
    setTimeout(function() { scrolldiv1.scrollTop(scrolldiv2.scrollTop()); }, 200); 
});