現在まで、スクロールの効果は非常に多くの人気を得ています(いわゆる
視差 )。 しかし、残念ながら、これらの効果はモバイルデバイスでネイティブにサポートされていません。 少し前まで、Mark Dalgleishはこの問題に対する彼自身の解決策を提案しました。
図書館
タッチライブラリのいずれかを選択します。
iScroll by Matteo Spinelliジョー・ヒューイットによるスクロール可能性ZyngaによるZynga ScrollerModernizrを接続します
ラッパー
iScrollで選択した場合は、#wrapperブロックと#scrollerブロック内にコンテンツを配置する必要があります
<div id="wrapper"> <div id="scroller"> <ul> <li>...</li> </ul> </div> </div>
Modernizrを使用してタッチデバイスを定義し、そのデバイス用の新しいiScrollインスタンスを作成します
var myScroller = Modernizr.touch ? new iScroll('scroller') : null;
スタイルを追加する
#wrapper { overflow: auto; } .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.scrollLeft; y = elem.scrollTop; } return {x: x, y: y}; }
最後のタッチ
var myScroller = Modernizr.touch ? new iScroll('scroller') : null; (function animationLoop(){ window.requestAnimationFrame(animationLoop); var scroll = getScroll(window, myScroller);
アニメーションにrequestAnimationFrameを使用する理由