モバイル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










All Articles