touchstart,touchmove,touchendタッチイベントの小さな実践心得
1987 ワード
最近html 5を使用して社内アプリケーションを開発しているが、タッチイベントはモバイルアプリケーションに必要であり、最初はモバイルデバイスでもマウスイベントをサポートするかもしれないと思っていたが、サポートされていなかった.幸い、webkitカーネルのモバイルブラウザでtouchイベントをサポートし、appにパッケージ化しても圧力はなかった.touchイベントはマウスイベントと同じ理屈だと思っていたが、実践の過程では難しくなかったが、多くの穴にぶつかって、まだ少し違いがあることに気づいた.
多くのブログでtouchと呼ばれる3つのイベントにはtargetTouches,touchesおよびchangedTouchesオブジェクトリストがありますが、実際にはそうではありません.touchendイベントにはchangedTouchesタッチインスタンスリストが1つしかないはずです.ここでは、コールバック関数のeventは普通のobjectオブジェクトにすぎません.実際にはeventにoriginalEvent属性があります.これこそ本当のtouchイベントです.このイベントには、マウスイベントと同様に、タッチイベントの位置などの属性を格納する3つのタッチインスタンスのリストが存在します.他の場所は基本的にマウスイベントと一致しています.この3つのタッチリストを簡単に紹介すると、touchesは画面上のすべての指のリストであり、targetTouchesは現在のDOM上の指のリストであるため、指が移動するとtouchendイベントがトリガーされるとevent.originalEventにはこのtargetTouchesリストはありませんが、changedTouchesリストは、touchendイベントなどの現在のイベントに関連するリストであり、指が移動します.次にpcとモバイル端末の適合について話します.html 5を使用する以上、もちろん彼のプラットフォームをまたぐ特性が気に入っています.iosとandroidだけでなく、pcで直接ページを開くのもいいですが、pcではマウスイベントだけをサポートしています.どうすればいいですか.上のコードのタッチイベントをよく見てtouchXXX、以下のコードを見てください.
PC上であればマウスイベントを用い,モバイル機器ではタッチイベントを用いるのが簡単で,pcの有無を判断するのに便利であり,多くの説明は行わない.
$(document).bind(touchEvents.touchstart, function (event) {
event.preventDefault();
});
$(document).bind(touchEvents.touchmove, function (event) {
event.preventDefault();
});
$(document).bind(touchEvents.touchend, function (event) {
event.preventDefault();
});
多くのブログでtouchと呼ばれる3つのイベントにはtargetTouches,touchesおよびchangedTouchesオブジェクトリストがありますが、実際にはそうではありません.touchendイベントにはchangedTouchesタッチインスタンスリストが1つしかないはずです.ここでは、コールバック関数のeventは普通のobjectオブジェクトにすぎません.実際にはeventにoriginalEvent属性があります.これこそ本当のtouchイベントです.このイベントには、マウスイベントと同様に、タッチイベントの位置などの属性を格納する3つのタッチインスタンスのリストが存在します.他の場所は基本的にマウスイベントと一致しています.この3つのタッチリストを簡単に紹介すると、touchesは画面上のすべての指のリストであり、targetTouchesは現在のDOM上の指のリストであるため、指が移動するとtouchendイベントがトリガーされるとevent.originalEventにはこのtargetTouchesリストはありませんが、changedTouchesリストは、touchendイベントなどの現在のイベントに関連するリストであり、指が移動します.次にpcとモバイル端末の適合について話します.html 5を使用する以上、もちろん彼のプラットフォームをまたぐ特性が気に入っています.iosとandroidだけでなく、pcで直接ページを開くのもいいですが、pcではマウスイベントだけをサポートしています.どうすればいいですか.上のコードのタッチイベントをよく見てtouchXXX、以下のコードを見てください.
var touchEvents = {
touchstart: "touchstart",
touchmove: "touchmove",
touchend: "touchend",
/**
* @desc: pc , pc, touch ,
*/
initTouchEvents: function () {
if (isPC()) {
this.touchstart = "mousedown";
this.touchmove = "mousemove";
this.touchend = "mouseup";
}
}
};
PC上であればマウスイベントを用い,モバイル機器ではタッチイベントを用いるのが簡単で,pcの有無を判断するのに便利であり,多くの説明は行わない.