vue里面eval用法

在移动端开发中,防止用户误操作或恶意捕获是非常重要的一件事情。而使用jQuery来防止捕获则是一个非常实用的解决方案。以下是几个常见的方法:

$(document).on('touchmove',function(event) {
  event.preventDefault();
});

jquery移动端防止捕获

这是最简单的防止捕获的方法,它使用jQuery来阻止所有touchmove事件的默认行为,从而禁止了对元素的拖拽、滚动等操作。一般情况下,我们只需要在整个文档对象上监听touchmove事件,并调用event.preventDefault()方法即可。

var touchStartX = 0;
var touchStartY = 0;
var touchEndX = 0;
var touchEndY = 0;

$(document).on('touchstart',function(event) {
  touchStartX = event.touches[0].pageX;
  touchStartY = event.touches[0].pageY;
});

$(document).on('touchmove',function(event) {
  touchEndX = event.touches[0].pageX;
  touchEndY = event.touches[0].pageY;

  if (Math.abs(touchEndX - touchStartX) > 10 || Math.abs(touchEndY - touchStartY) > 10) {
    event.preventDefault();
  }
});

这个方法会记录用户手指按下时的坐标和手指离开时的坐标,如果用户手指移动的距离超过了一定值,就会阻止touchmove事件的默认行为。这个值是通过比较目前移动的坐标与初始坐标的差值得出的。

var dragging = false;
var lastY = 0;
var threshold = 5;  // 阈值,单位为像素

$(document).on('touchstart',function(event) {
  dragging = false;
  lastY = event.touches[0].pageY;
});

$(document).on('touchmove',function(event) {
  if (dragging) {
    event.preventDefault();
    var newY = event.touches[0].pageY;
    console.log(newY - lastY);
    lastY = newY;
  } else {
    var deltaY = Math.abs(event.touches[0].pageY - lastY);
    if (deltaY > threshold) {
      dragging = true;
    }
  }
});

这个方法与前一个方法类似,只不过它只会阻止touchmove事件的默认行为,当用户在屏幕上拖动时。这个方法也记录了用户手指按下时的坐标和手指移动时的坐标。如果用户移动了一个预先设定的距离(阈值),则认为用户是在拖动,之后才会阻止touchmove事件的默认行为。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐