Bilibili-Evolved/min/touch-move.min.js
2019-10-11 14:00:02 +08:00

1 line
996 B
JavaScript

(()=>{return(e,t)=>{const n=(e,t)=>{const n=Math.pow(Math.abs(e.x-t.x),2);const s=Math.pow(Math.abs(e.y-t.y),2);return n+s>=400};const s=(e,t)=>{const n={screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY};return new MouseEvent(e,{...n,bubbles:true,cancelable:true,view:unsafeWindow,detail:1})};const c=e=>{let t;let c;let a;e.addEventListener("touchstart",e=>{if(e.touches.length<1){return}const n=e.touches[0];t={x:n.clientX,y:n.clientY};e.target.dispatchEvent(s("mousedown",n))},{passive:false,capture:true});e.addEventListener("touchmove",e=>{if(e.touches.length!==1){return}const r=e.touches[0];const u={x:r.clientX,y:r.clientY};c=r;if(n(t,u)){e.target.dispatchEvent(s("mousemove",r));a=true;if(e.cancelable){e.preventDefault()}}else{a=false}},{passive:false,capture:true});e.addEventListener("touchend",e=>{if(a){e.target.dispatchEvent(s("mouseup",c));if(e.cancelable){e.preventDefault()}a=false}},{passive:false,capture:true})};return{export:{enableTouchMove:c}}}})();