我希望在每次滑动1秒和1秒后touchstart都处于活动状态后,使其处于非活动状态

时间:2018-08-04 20:06:27

标签: javascript

我使用了link的stackoverflow在项目中向左/向右滑动写入,但是现在我希望在每次滑动1秒钟后和激活触摸1秒钟后不激活touchstart。在下面,只有我自己使用的算法介意,但效果不佳。

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
}

1 个答案:

答案 0 :(得分:1)

您还必须屏蔽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;
    //...
  }