mirror of
https://github.com/pierre42100/comunic
synced 2024-11-16 18:41:13 +00:00
65 lines
2.0 KiB
JavaScript
65 lines
2.0 KiB
JavaScript
|
var hasTouch = 'ontouchend' in window, eventTimer;
|
||
|
var moveDirection = 'undefined', startX, startY, deltaX, deltaY, mouseDown = false
|
||
|
|
||
|
function addTouchEvents(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();
|
||
|
}
|
||
|
|
||
|
|
||
|
/* To add touch support for element need create listeners for component dom element
|
||
|
if (hasTouch) {
|
||
|
element.addEventListener("touchstart", touch2Mouse, true);
|
||
|
element.addEventListener("touchmove", touch2Mouse, true);
|
||
|
element.addEventListener("touchend", touch2Mouse, true);
|
||
|
}
|
||
|
*/
|