DIV
次のコードを使用して、2 つの同期スクロールを実装しようとしています。
$(document).ready(function() {
$("#div1").scroll(function () {
$("#div2").scrollTop($("#div1").scrollTop());
});
$("#div2").scroll(function () {
$("#div1").scrollTop($("#div2").scrollTop());
});
});
#div1
まったく同じ内容ですが、#div2
サイズが異なります。たとえば、
#div1 {
height : 800px;
width: 600px;
}
#div1 {
height : 400px;
width: 200px;
}
このコードでは、2 つの問題に直面しています。
1) div のサイズが異なるため、スクロールがうまく同期されていません。これは、scrollTop
値を直接設定しているためです。スクロールされたコンテンツのパーセンテージを見つけて、対応するscrollTop
値を計算する必要がありますdiv
。実際の高さと現在のスクロール位置を見つける方法がわかりません。
2) この問題は にのみ見られfirefox
ます。Firefox では、他のブラウザーのようにスクロールがスムーズではありません。これは、上記のコードがスクロール イベントの無限ループを作成しているためだと思います。なぜこれがFirefoxでのみ起こっているのか、私にはわかりません。この問題を解決できるように、スクロール イベントのソースを見つける方法はありますか。
どんな助けでも大歓迎です。