首先為了防止事件觸發默認行為,我們需要去禁止,安全的禁止方法:
// 判斷默認行為是否可以被禁用 if (e.cancelable) { // 判斷默認行為是否已經被禁用 if (!e.defaultPrevented) { e.preventDefault(); } }
三個事件:
$("body").on("touchstart", function(e) {
e.preventDefault();
});
$("body").on("touchend", function(e) {
e.preventDefault();
});
$("body").on("touchmove", function(e) {
e.preventDefault();
});
移動開始和結束的坐標獲取:
startX = e.originalEvent.changedTouches[0].pageX; startY = e.originalEvent.changedTouches[0].pageY; moveEndX = e.originalEvent.changedTouches[0].pageX; moveEndY = e.originalEvent.changedTouches[0].pageY;
樣例:
$("body").on("touchstart", function(e) {
e.preventDefault();
startX = e.originalEvent.changedTouches[0].pageX,
startY = e.originalEvent.changedTouches[0].pageY;
});
$("body").on("touchmove", function(e) {
e.preventDefault();
moveEndX = e.originalEvent.changedTouches[0].pageX,
moveEndY = e.originalEvent.changedTouches[0].pageY,
X = moveEndX - startX,
Y = moveEndY - startY;
if ( X > 0 ) {
alert('向左滑動');
}
});
注:以上$使用基於jquery1.7.2
對應pc端鼠標操作:
touchstart ——> mousedown
touchend ——> mouseup touchmove ——> mousemove
