UNPKG

vpn.email

Version:
62 lines (52 loc) 1.81 kB
var hasTouch = 'ontouchend' in window, eventTimer; var moveDirection = 'undefined', startX, startY, deltaX, deltaY, mouseDown = false; var addTouchEvents = function(element) { if (hasTouch) { element.addEventListener("touchstart", touch2Mouse, true); element.addEventListener("touchmove", touch2Mouse, true); element.addEventListener("touchend", touch2Mouse, true); } }; function touch2Mouse(e) { var theTouch = e.changedTouches[0]; var mouseEv; switch (e.type) { case "touchstart": mouseEv = "mousedown"; break; case "touchend": mouseEv = "mouseup"; break; case "touchmove": mouseEv = "mousemove"; break; default: return; } if (mouseEv == "mousedown") { eventTimer = (new Date()).getTime(); startX = theTouch.clientX; startY = theTouch.clientY; mouseDown = true; } if (mouseEv == "mouseup") { if ((new Date()).getTime() - eventTimer <= 500) { mouseEv = "click"; } else if ((new Date()).getTime() - eventTimer > 1000) { mouseEv = "longclick"; } eventTimer = 0; mouseDown = false; } if (mouseEv == "mousemove") { if (mouseDown) { deltaX = theTouch.clientX - startX; deltaY = theTouch.clientY - startY; moveDirection = deltaX > deltaY ? 'horizontal' : 'vertical'; } } var mouseEvent = document.createEvent("MouseEvent"); mouseEvent.initMouseEvent(mouseEv, true, true, window, 1, theTouch.screenX, theTouch.screenY, theTouch.clientX, theTouch.clientY, false, false, false, false, 0, null); theTouch.target.dispatchEvent(mouseEvent); e.preventDefault(); }