ホームページ > 記事 > ウェブフロントエンド > HTML5 モバイル開発 - スクロールと慣性イージングのコード例
1. スクロールを実装するには次の 3 つの方法があります: 1) ネイティブ CSS を使用しますattribute overflow:scroll p id =parent style = overflow:scroll; pid='content' コンテンツ領域/p /p 注意: android にはバグがあります。解決策は、後者の 2 つを使用することです。 2)jsプログラミングの実装アイデア:画面上で指を動かしてコンテンツ要素の内容を変更する前後の位置変化を比較する
1. Scroll
実装方法は以下の3つです
1)ネイティブCSS属性オーバーフロー:scroll
<div id="parent" style="overflow:scroll;> <div id='content'>内容区域</div> </div>
注意:
Androidにはスクロール後、上部のコンテンツエリアに戻ってしまうバグがあります
2)jsプログラミング。実装
アイデア: 画面上で移動する前と後の指の位置の変化を比較する コンテンツ要素の位置を変更する
ステップ 1: 親のオーバーフローを非表示に設定し、コンテンツの位置を相対に設定し、 top to 0;
ステップ 2: タッチ イベントをリッスンする
var parent = document.getElementById('parent'); parent.addEventListener('touchstart', function(e) { // do touchstart }); parent.addEventListener('touchmove', function(e) { // do touchmove }); parent.addEventListener('touchend', function(e) { // do touchend });
ステップ 3: スクロール コードを実装する
/** * 这里只实现垂直滚动 */ var parent = document.getElementById('parent'); var content = document.getElementById('content') var startY = 0; // 初始位置 var lastY = 0; // 上一次位置 parent.addEventListener('touchstart', function(e) { lastY = startY = e.touches[0].pageY; }); parent.addEventListener('touchmove', function(e) { var nowY = e.touches[0].pageY; var moveY = nowY - lastY; var contentTop = content.style.top.replace('px', ''); // 设置top值移动content content.style.top = (parseInt(contentTop) + moveY) + 'px'; lastY = nowY; }); parent.addEventListener('touchend', function(e) { // do touchend var nowY = e.touches[0].pageY; var moveY = nowY - lastY; var contentTop = content.style.top.replace('px', ''); // 设置top值移动content content.style.top = (parseInt(contentTop) + moveY) + 'px'; lastY = nowY; });
ステップ 4: 最適化する
上記のコードは、PC よりも携帯電話で実行する方がはるかに遅くなります
最適化部分については、こちらをご覧ください:
3) iScroll4 フレームワークを使用します
var scroll = new iScroll('parent', { hScrollbar: false, vScrollbar: true, checkDOMChanges : true });
2. 慣性イージング
以上がHTML5 モバイル開発 - スクロールと慣性イージングのコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。