2

この質問と同様に、2 つの div のスクロールを調整しようとしていますが、私の div は両方ともスクロール可能です (質問では、div の 1 つがコントロールであり、もう 1 つがスレーブであるのに対し、ユーザーはどちらかをスクロールし、もう一方をスクロールできます)。 -それに応じてスクロールします)。

私の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 は同期されたままになりますが、スクロールが非常に遅くなります。両方のイベントが発生しており、ポジションが互いに争っていると思われます。

ホイールスクロールをスクロールバーで開始されたスクロールと同じくらい速くするためにできることについて、誰か提案はありますか?

前もって感謝します!

4

1 に答える 1

0

コンパニオンdivのスクロールのトリガーを遅らせるタイムアウトイベントを追加することで、問題を解決することができました。

scrolldiv1.scroll(function () {
    setTimeout(function () { scrolldiv2.scrollTop(scrolldiv1.scrollTop()); }, 200);
});
scrolldiv2.scroll(function () {
    setTimeout(function () { scrolldiv1.scrollTop(scrolldiv2.scrollTop()); }, 200);
});
于 2013-03-06T20:31:34.050 に答える