-
Notifications
You must be signed in to change notification settings - Fork 0
/
TouchMapper.js
executable file
·44 lines (37 loc) · 1.44 KB
/
TouchMapper.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
'use strict';
function TouchMapper(element) {
var div = document.querySelector(element);
div.addEventListener("touchstart", this.handler, true);
div.addEventListener("touchmove", this.handler, true);
div.addEventListener("touchend", this.handler, true);
div.addEventListener("touchcancel", this.handler, true);
}
TouchMapper.prototype.handler = function (event) {
var first, touches, type, simulatedEvent;
touches = event.changedTouches;
first = touches[0];
type = "";
switch (event.type) {
case "touchstart":
type = "mousedown";
break;
case "touchmove":
type="mousemove";
break;
case "touchend":
type="mouseup";
break;
default: return;
}
//initMouseEvent(type, canBubble, cancelable, view, clickCount,
// screenX, screenY, clientX, clientY, ctrlKey,
// altKey, shiftKey, metaKey, button, relatedTarget);
simulatedEvent = document.createEvent("MouseEvent");
simulatedEvent.initMouseEvent(type, true, true, window, 1,
first.screenX, first.screenY,
first.clientX, first.clientY, false,
false, false, false, 0, null);
first.target.dispatchEvent(simulatedEvent);
event.preventDefault();
}
new TouchMapper("#chaos-pad");