- PVSM.RU - https://www.pvsm.ru -
На сегодняшний день эффекты при скроллинге набрали достаточно большую популярность (так называемый параллакс [1]). Но, к сожалению, эти эффекты нейтивно не поддерживаются мобильными устройствами. Не так давно Mark Dalgleish предложил свой вариант решения этой проблемы:
Выбираем одну из тач-библиотек:
iScroll by Matteo Spinelli [2]
Scrollability by Joe Hewitt [3]
Zynga Scroller by Zynga [4]
И подключаем Modernizr [5]
Если ваш выбор пал на iScroll, вам следует поместить контент внутри блоков #wrapper и #scroller
<div id="wrapper">
<div id="scroller">
<ul>
<li>...</li>
</ul>
</div>
</div>
var myScroller = Modernizr.touch ? new iScroll('scroller') : null;
#wrapper {
overflow: auto;
}
/* Переопределяем #wrapper для тач-устройств */
/* Класс head.touch создается Modernizer'ом в случаи если ваш браузер поддерживает тач-ивенты */
.touch #wrapper {
overflow: hidden;
}
function getScroll(elem, iscroll) {
var x, y;
if (Modernizr.touch && iscroll) {
x = iscroll.x * -1;
y = iscroll.y * -1;
} else {
x = elem.scrollTop;
y = elem.scrollLeft;
}
return {x: x, y: y};
}
var myScroller = Modernizr.touch ? new iScroll('scroller') : null;
(function animationLoop(){
window.requestAnimationFrame(animationLoop);
var scroll = getScroll(window, myScroller);
// Теперь мы можем использовать кроссплатформенные координаты
scroll.x;
scroll.y;
})();
Почему для анимации следует использовать requestAnimationFrame [6]
Автор: vermilion1
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/javascript/11037
Ссылки в тексте:
[1] параллакс: http://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B0%D0%BA%D1%81
[2] iScroll by Matteo Spinelli: https://cubiq.org/iscroll-4
[3] Scrollability by Joe Hewitt: https://joehewitt.github.com/scrollability/
[4] Zynga Scroller by Zynga: https://zynga.github.com/scroller
[5] Modernizr: https://modernizr.com/
[6] Почему для анимации следует использовать requestAnimationFrame: http://habrahabr.ru/post/114358/
Нажмите здесь для печати.