Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS-touchstart/end事件在iOS上不工作_Javascript_Touch Event - Fatal编程技术网

Javascript JS-touchstart/end事件在iOS上不工作

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

我正在尝试使用touchstart/touchend事件通过滑动手势启动一个函数。它在安卓系统(在Chrome和Firefox上测试)上运行良好,但在iOS系统(在Safari和Chrome上测试)上运行不理想

我正在处理的页面:

剧本:

  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
上触发事件。