浏览器模拟touch

        var ele =  document.getElementById('trackLine')
        //may have x and y properties in some browsers,But it always has left, top, right, and bottom properties.
        var rect = ele.getBoundingClientRect(); 
        var touch = new Touch({
            "identifier" : 0,
            "target" : ele,
            "clientX" : (rect.left + rect.right)/2,
            "clientY" : (rect.top + rect.bottom)/2,
            "screenX" : (rect.left + rect.right)/2,
            "screenY" : (rect.top + rect.bottom)/2,
            "pageX" : (rect.left + rect.right)/2,
            "pageY" : (rect.top + rect.bottom)/2,
            "radiusX" : 11.5,
            "radiusY" : 11.5,
            "rotationAngle" : 0.0,
            "force" : 1});
        
        var touchstart = new TouchEvent("touchstart", {
            cancelable: true,
            bubbles: true,
            composed: true,
            touches: [touch],
            targetTouches: [touch],
            changedTouches: [touch]
        });
        
        var touchend = new TouchEvent("touchend", {
            cancelable: true,
            bubbles: true,
            composed: true,
            touches: [touch],
            targetTouches: [touch],
            changedTouches: [touch]
        });
        
        
        
        ele.dispatchEvent(touchstart);
        
        window.interval = setInterval(function(){
            var touch = new Touch({
            "identifier" : 0,
            "target" : ele,
            "clientX" : (rect.left* Math.random() + rect.right * Math.random())/2,
            "clientY" : (rect.top* Math.random() + rect.bottom* Math.random())/2,
            "screenX" : (rect.left* Math.random() + rect.right* Math.random())/2,
            "screenY" : (rect.top* Math.random() + rect.bottom* Math.random())/2,
            "pageX" : (rect.left* Math.random() + rect.right* Math.random())/2,
            "pageY" : (rect.top* Math.random() + rect.bottom* Math.random())/2,
            "radiusX" : 11.5,
            "radiusY" : 11.5,
            "rotationAngle" : 0.0,
            "force" : 1});
            console.log(touch)
            var touchmove = new TouchEvent("touchmove", {
                cancelable: true,
                bubbles: true,
                composed: true,
                touches: [touch],
                targetTouches: [touch],
                changedTouches: [touch]
            });
            ele.dispatchEvent(touchmove);
        }, 20);

        
        
            

 

posted @ 2020-11-03 21:58  rubekid  阅读(129)  评论(0编辑  收藏  举报