javascript-检测用户的意图是轻触还是在触觉设备上向上/向下滚动页面

如果用户在popup-div外部点击(触摸开始),我想隐藏弹出窗口.

但是,如果用户的意图是滚动/滑动(触摸移动),则我不想隐藏弹出窗口.

代码看起来如何检测和响应这两个动作(使用或不使用jQuery)?

解决方法:

这是如何执行此操作的基本示例:
http://jsfiddle.net/4CrES/2/

其背后的逻辑涉及检测初始触摸时间并将其保存到var

touchTime = new Date();

在touchend处理程序中,从当前时间中减去该时间以获得差值:

var diff = new Date() - touchTime;

使用if语句确定触摸持续时间是否短到足以将其视为轻击,或长到足以将其视为阻力.

if (diff < 100){
    //It's a tap
}
else {
    //Not a quick tap
}

您可以通过在处理程序中对初始touch y位置和最终touch y位置进行类似的操作来编写更强大的实现.另一个选择是比较滚动区域的scrollTop,以查看是否已滚动.

上一篇:touch事件兼容性处理


下一篇:使用touch命令批量创建文件