Вот еще один альтернативный метод, который вы можете попробовать. Я использую его, чтобы расположить панель инструментов div в верхней части страницы (тоже работает для ipad).
Вместо использования события onScroll, я использую таймер для запуска каждые 500 мс, чтобы определить, куда прокручивается окно с помощью scrollTop
. Вы можете настроить таймер на 200 мс, если хотите.
Вот урезанный пример моего кода:
Этот код jquery проверяет, когда и если мой элемент div с именем dom с именем "floatlayer" (это div, содержащий панель инструментов моих кнопок) готов, а затем вызывает функцию setRepeater
$(#floatlayer").ready(function () {
return setRepeater();
});
Затем эта функция создает таймер для продолжения выполнения функции "keepIncrease" каждые 500 мс
function setRepeater() {
aTimer = window.setInterval("keepIncrease()", 500);
return false;
}
Это функция keepIncrease (), которая повторяется каждые 500 мс и отвечает за позиционирование div панели инструментов на основе текущей позиции прокрутки окна:
function keepIncrease() {
var divToolbar = $("#floatlayer")[0];
var currentPos = $(window).scrollTop();
divToolbar.style.top = currentPos + "px";
return false;
}
Что-то еще не по теме:
Если ваш контент находится внутри iframe, вы также можете использовать $ (window.parent) .scrollTop () вместо $ (window) .scrollTop ()