モバイルWeb開発:ジェスチャー、フレームワーク、数字

モバイルサイトおよびモバイルデバイス用アプリケーションのWeb開発のテーマを続けると、DOMを操作して非同期リクエストを送信するためのフレームワークなどのトピックに触れるしかありません。
デスクトップ標準は長い間jQueryでしたが、モバイルプラットフォームでの開発には適していません。 jQueryがどのようにモバイルデバイスと友達になるかを見てみましょう。


jQueryおよびモバイルデバイス。


最初のjQueryの問題はタチです。 クリックイベントでクリックを処理することはお勧めできません。 モバイルブラウザはクリックイベントをサポートしなければならないという事実のため、私たちはそれを行うことができますが、高価です。 モバイルデバイスでは、ユーザーが画面に触れてから300ミリ秒後までクリックイベントが呼び出されません。スクロールまたはダブルタップなどが行われ、クリックイベント処理が機能するかどうかを判断します。 300ミリ秒は顕著な遅延を引き起こします。

これを回避するには、jQueryサテライト-jQuery Mobileでサポートされているタップイベントを使用できます。 ただし、jQuery Mobileも最適なソリューションではありません。 まず、jQueryのようにサイズが非常に大きく、jQueryの一部をカットできるサービスでも、サイズを十分に小さくすることはできません。 2番目の主な欠点は、ジェスチャーのサポートがないことです。

理論上のジェスチャー。


WebKitのモバイルバージョン(iOS、Android)は、次のイベントをサポートしています。

したがって、svaypをスワイプするには、次のコードが必要です。
var touchstartX = 0; var touchstartY = 0; var touchendX = 0; var touchendY = 0; var gesuredZone = document.getElementById('gesuredZone'); gesuredZone.addEventListener('touchstart', function(event) { touchstartX = event.screenX; touchstartY = event.screenY; }, false); gesuredZone.addEventListener('touchend', function(event) { touchendX = event.screenX; touchendY = event.screenY; handleGesure(); }, false); function handleGesure() { var swiped = 'swiped: '; if (touchendX < touchstartX) { alert(swiped + 'left!'); } if (touchendX > touchstartX) { alert(swiped + 'right!'); } if (touchendY < touchstartY) { alert(swiped + 'down!'); } if (touchendY > touchstartY) { alert(swiped + 'left!'); } if (touchendY == touchstartY) { alert('tap!'); } } 

実例:
http://jsfiddle.net/sagens/zNvtL/2/


ジェスチャ処理は複雑であるため、ジェスチャをサポートするjQueryの代替を参照できます

JQueryの代替


代替案を探して、次の要件を提示できます。
  1. DOM操作
  2. ジェスチャー処理
  3. 非同期リクエスト
  4. 小さいサイズ


フレームワーク


Quo.JS。





Zepto.JS






図書館


Hammer.js




道化師



Thumbs.js




Source: https://habr.com/ru/post/J178611/


All Articles