gpt4 book ai didi

javascript - 安卓浏览器 : touchcancel being fired althought touchmove has preventDefault

转载 作者:可可西里 更新时间:2023-11-01 19:07:18 27 4
gpt4 key购买 nike

我正在尝试构建一个网页,它可以感应用户的触摸并沿着 Canvas 拖动和对象。

所以我正在做这样的事情:

var touchStart = function(e) {
e.preventDefault();
// Do stuff
}
var touchMove = function(e) {
e.preventDefault();
console.log("Touch move");
// Move objs
}
var touchEnd = function(e) {
e.preventDefault();
console.log("Touch start!");
// clean up stuff
}
var touchCancel = function(e) {
e.preventDefault();

// Oh NO touch cancel!
console.log("Touch cancel!");

}
bindElemOrig.addEventListener('touchstart', touchStart, false);
bindElemOrig.addEventListener('touchmove', touchStart, false);
bindElemOrig.addEventListener('touchend', touchStart, false);
bindElemOrig.addEventListener('touchcancel', touchStart, false);

在某些时候它工作正常。

问题是一旦我加载太多 objs,在我看来 touchmove 响应时间太长,并且 touchcancel 被触发。问题是,一旦 touchcancel 被触发,我就不会再收到任何 touchmove 的事件,并且我无法再感觉到移动。

有人遇到过这个问题吗?我知道 Android 中必须调用 preventDefault ( touchend event in ios webkit not firing? ) 的错误,但在这种情况下,由于内存负担,它似乎无法正常工作。

谢谢!

最佳答案

像这样

var touchMove = function(e) {
e.preventDefault();
setTimeout(function(){
console.log("Touch move");
// Move objs

})
}

在touchmove中使用setTimeout包裹你的逻辑可以解决这个问题

关于javascript - 安卓浏览器 : touchcancel being fired althought touchmove has preventDefault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15944197/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com