touch事件如何判断是否离开

发布于 2022-09-06 03:18:14 字数 97 浏览 18 评论 0

RT,例如,在某些情况下,touchmove中的时候,直接移出屏幕或其他情况,会导致触发不了touchend事件,此问题如何解决

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

活雷疯 2022-09-13 03:18:14

touchmove时不让其移出可视窗口,或者touchend事件加在document上

function touch(id){
            var obj = document.getElementById(id); 
            obj.addEventListener('touchstart', function(event) {     
            if (event.targetTouches.length == 1) { 
            var touch = event.targetTouches[0]; 
            var disX=touch.pageX-obj.offsetLeft; 
            var disY=touch.pageY-obj.offsetTop;
            var W = document.documentElement.clientWidth-obj.offsetWidth;
            var H = document.documentElement.clientHeight-obj.offsetHeight;
            obj.addEventListener('touchmove',move);  
            function move(event){    
                event.preventDefault();
                    var touch2=event.targetTouches[0];
                    var l=touch2.pageX-disX;
                    var t=touch2.pageY-disY;
                    if(l<0){
                        l=0;
                    };
                    if(l>W){
                        l=W;
                    };
                    if(t<0){
                        t=0;
                    };
                    if(t>H){
                        t=H;
                    };
                    obj.style.left=l+'px';
                    obj.style.top=t+'px';
         
            };
              obj.addEventListener('touchend',chend);
              function chend(event){
                obj.removeEventListener('touchmove',move);
                obj.removeEventListener('touchend',chend);
              };
        }; 
        }, false);
    };
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文