javascript - 我希望每次滑动 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
}
解决方案
您还必须阻止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;
//...
}
推荐阅读
- c# - 如何将资源图片设置为背景?
- android - 在 Mac 上升级到 Android Studio 3.3 后,在“Installing APK”上运行 Stuck 并且不会部署到连接的设备
- cloud-foundry - 从 SAP Cloud Foundry 发送电子邮件
- c# - WebRequest 的 GetResponseAsync 不稳定,而 GetResponse 不是
- r - 是否可以将向量存储在数据框单元格内?
- performance - 是否有任何现代 CPU 缓存字节存储实际上比字存储慢?
- javascript - 来自客户端的 symfony 会话 API 问题
- javascript - 将 HTML 中的数据属性用于图像而不是 javascript 编辑
- python - Python:如何使用列表检查 csv 列中是否没有值
- php - php不会杀死进程