在項目中遇到一個問題,橫向滑動的時候想阻止垂直放向頁面滾動,一開始用$(document).css("overflow-y","hidden")並沒有效果,后來才發現我們在判斷為橫向滑動時用event.preventDefault阻止默認事件即可,
var taskswiper = { startX: 0, startY: 0 }; $(id).on('touchstart', 'li', function(event){ if (event.originalEvent.targetTouches.length == 1) { taskswiper.startX = event.originalEvent.targetTouches[0].pageX; taskswiper.startY = event.originalEvent.targetTouches[0].pageY; } }); $(id).on('touchmove', 'li', function(event){ taskswiper.leftX = event.originalEvent.targetTouches[0].pageX - taskswiper.startX; taskswiper.leftY = event.originalEvent.targetTouches[0].pageY - taskswiper.startY; //橫向移動大於縱向移動 if ((Math.abs(taskswiper.leftX) > Math.abs(taskswiper.leftY))) { //阻止縱向滾動事件 event.preventDefault(); //執行想做的事情 } });
