Хотя это невозможно из коробки, можно сказать, вы можете сделать это, используя iscroll
Таким образом, вы будете использовать iScroll для мобильных устройств / планшетов на базе iOS и Android и использовать то же самое, что и в настоящее время для настольных устройств.
В iScroll есть множество опций для функций обратного вызова, вызываемых при определенных событиях, таких как «onScrollMove», «onBeforeScrollEnd», «onTouchEnd» и т. Д. К сожалению, нет опции для выполнения обратного вызова при «КАЖДОМ изменении позиции» , включая изменения, вызванные моментом прокрутки после того, как пользователь перестал касаться экрана ». Но добавить его достаточно просто.
В источнике iScroll, около строки 127, рядом с комментарием "// События", добавьте новую переменную:
onPosChange: null
Затем, около строки 308, в конце функции "_pos", добавьте эту строку:
if (this.options.onPosChange) this.options.onPosChange.call();
(которая будет вызывать только функцию, переданную в опции "onPosChange", если она существует).
Сделав это, следующий пример кода установит iScroll для div с id = "iscroll_container" и будет выводить смещение Y на консоль каждый раз, когда оно изменяется:
var myScroll;
function loaded() {
myScroll = new iScroll('iscroll_container', { onPosChange: actOnScroll });
}
document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);
//Use this for high compatibility (iDevice + Android)
document.addEventListener('DOMContentLoaded', function () { setTimeout(loaded, 200); }, false);
function actOnScroll(){
console.log('got a scroll move! Vert offset is: ' + myScroll.y);
}
Заметьте, Бен Сайт Параллакса Телохранителя работает на iPad с помощью iScroll (они используют гораздо более старую версию iscroll и делают это не совсем так, как я описал здесь)
Кроме того, Life of Pi Parallax Site действительно отлично работает на iPad - я не могу понять, как они это делают, но, по крайней мере, это доказывает, что это возможно!