首页 > 解决方案 > 我希望每次滑动 1 秒后触摸启动处于非活动状态,并且触摸启动 1 秒后处于活动状态

问题描述

我使用stackoverflow的这个链接在我的项目中写入向左/向右滑动,但现在我希望在每次滑动1秒后不活动的触摸启动和激活1秒后的触摸启动。在下面只有我想到的算法,但它不起作用出色地。

var drag = true;
function touchStart(event, passedName){
  if(!drag){
    // document.removeEventListener('touchstart', touchStart, false);
    return;
  }
  else{
    drag = false
  }
  // do for touchstart
  setTimeout(function(){
    drag = true;
  }, 1000);
}

我在 touchMove 中添加了这段代码:

function touchMove(event){
  ul.style.left = event.touches[0].pageX - x + 'px';// touchstart inactive but element still moving
}

标签: javascript

解决方案


您还必须阻止touchMove

 var dragging = false, blocked = false;

 function touchStart(event, passedName){
   if(blocked) return;
   blocked = true;
   setTimeout(() => blocked = false, 1000);

   dragging = true;
 }

 function touchEnd(event) { dragging = false; }

 function touchMove(event) {
    if(!dragging) return;
    //...
  }

推荐阅读