我通过将事件时间戳与requestAnimationFrame传递的时间戳进行比较,使用时间戳来准确检测长按。通过文档,这两个时间戳应该是:
此值是从当前文档的生命周期开始到创建事件所经过的毫秒数。
https://developer.mozilla.org/en-US/docs/Web/API/Event/timeStamp
我创建了一个jsFiddle,如果我在桌面上用鼠标点击,它会显示正数。如果我在iPhone 7+上打开,看起来从事件的timeStamp值减去大约40分钟。
https://jsfiddle.net/2r0nzcmu/1/
window.addEventListener("touchstart", function (event) {
let text = document.querySelector("#text");
text.textContent = event.timeStamp;
})
这是一个真正的错误吗? (如果你知道更好的方法)我怎样才能更好地发现长按?