Я пытаюсь реализовать синхронизированную прокрутку для двух DIV
со следующим кодом.
$(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;
}
С помощью этого кода я столкнулся с двумя проблемами.
1) Прокрутка не очень хорошо синхронизирована, так как divs имеют разные размеры. Я знаю, это потому, что я непосредственно устанавливаю значение scrollTop
. Мне нужно найти процент прокрученного содержимого и рассчитать соответствующее значение scrollTop
для другого DIV
. Я не уверен, как найти фактическую высоту и текущую позицию прокрутки.
2) Эта проблема встречается только в firefox
. В firefox прокрутка не является гладкой, как в других браузерах. Я думаю, это потому, что приведенный выше код создает бесконечный цикл событий прокрутки.
Я не уверен, почему это происходит только с firefox. Есть ли способ найти источник события прокрутки, чтобы я мог решить эту проблему.
Любая помощь будет принята с благодарностью.