Javascript JS-touchstart/end事件在iOS上不工作
我正在尝试使用touchstart/touchend事件通过滑动手势启动一个函数。它在安卓系统(在Chrome和Firefox上测试)上运行良好,但在iOS系统(在Safari和Chrome上测试)上运行不理想 我正在处理的页面: 剧本:Javascript JS-touchstart/end事件在iOS上不工作,javascript,touch-event,Javascript,Touch Event,我正在尝试使用touchstart/touchend事件通过滑动手势启动一个函数。它在安卓系统(在Chrome和Firefox上测试)上运行良好,但在iOS系统(在Safari和Chrome上测试)上运行不理想 我正在处理的页面: 剧本: let touchstartX = 0; let touchstartY = 0; let touchendX = 0; let touchendY = 0; const gestureZone = document.querySelec
let touchstartX = 0;
let touchstartY = 0;
let touchendX = 0;
let touchendY = 0;
const gestureZone = document.querySelector('.presentation');
gestureZone.addEventListener('touchstart', function(event) {
touchstartX = event.changedTouches[0].screenX;
touchstartY = event.changedTouches[0].screenY;
}, false);
gestureZone.addEventListener('touchend', function(event) {
touchendX = event.changedTouches[0].screenX;
touchendY = event.changedTouches[0].screenY;
handleGesture();
}, false);
function handleGesture() {
if (touchendX <= touchstartX) {
nextSlide()
}
if (touchendX >= touchstartX) {
prevSlide()
}
}
让touchstartX=0;
让touchstartY=0;
设touchendX=0;
设touchendY=0;
const gestureZone=document.querySelector('.presentation');
gestureZone.addEventListener('touchstart',函数(事件){
touchstartX=event.changedTouches[0]。screenX;
touchstartY=event.changedTouches[0]。屏幕显示;
},假);
gestureZone.addEventListener('touchend',函数(事件){
touchendX=event.changedTouches[0]。screenX;
touchendY=event.changedTouches[0]。屏幕显示;
手感();
},假);
函数HandleTesture(){
如果(touchendX=touchstartX){
前幻灯片()
}
}
除非它改变了(我检查iOS已经有一段时间了)touchend
不会提供iOS上的坐标。您必须记录touchmove
@Lain提供的最后一次触摸:这是由于提供了活动触摸/手指数量的事件。在touchend
上,通常不再有手指触摸,因此数组为空。Bealbok:只需像Lain写的那样在touchmove
上记录坐标,并在touchend
上触发事件。