モバイル ブラウザー用のスワイプ ナビゲーションを追加した小さな Web ギャラリーがあります。私は非常に単純な touchstart/touchmove/touchend イベント追跡でそれを行いました。
問題は、ブラウザー ウィンドウでズームをピンチしようとすると、タッチ イベント ハンドラーを追加した要素で指が始まると失敗することです。preventDefault の呼び出しから推測しています。
ブラウザのズームインおよびズームアウト機能をブロックせずに、画像をナビゲートするためのタッチイベントを追跡する方法はありますか? 要素の上にある場合は、1 本の指のスクロールをブロックしてもかまいませんが、ピンチ ズームを許可したいと考えています。
コードは次のとおりです。
function addDragHandlers(eventDivId) {
var startX, endX;
var slides = $('#'+eventDivId);
slides.bind('touchstart', function(e) {
e.preventDefault();
startX = e.pageX;
endX = startX;
});
slides.bind('touchmove', function(e) {
e.preventDefault();
endX = e.pageX;
});
slides.bind('touchend', function(e) {
e.preventDefault();
if ( endX - startX < 0) {
// go to next image
} else if ( endX - startX > 0) {
// go to previous image
} else {
// do click action
}
}
});
}