Requires

Provides

Maps mouse events to their touch counterparts

License:
MIT-style license.
Authors:
Christoph Pojer (@cpojer)
  1. 20
  2. 21
  3. 22
  4. 23
  5. 24
  6. 25
  7. 26
  8. 27
  9. 28
  10. 29
  11. 30
  12. 31
  13. 32
  14. 33
  15. 34
  16. 35
  17. 36
  18. 37
  19. 38
  20. 39
  21. 40
  22. 41
  23. 42
  24. 43
  25. 44
  26. 45
  27. 46
  28. 47
  29. 48
  30. 49
  31. 50
  32. 51
  33. 52
  34. 53
  35. 54
  36. 55
  37. 56
  38. 57
  39. 58
  40. 59
  41. 60
  42. 61
  43. 62
if (!Browser.Features.Touch) (function(){ var condition = function(event){ event.targetTouches = []; event.changedTouches = event.touches = [{ pageX: event.page.x, pageY: event.page.y, clientX: event.client.x, clientY: event.client.y }]; return true; }; var mouseup = function(e) { var target = e.target; while (target != this && (target = target.parentNode)); this.fireEvent(target ? 'touchend' : 'touchcancel', arguments); document.removeEvent('mouseup', this.retrieve('touch:mouseup')); }; Element.defineCustomEvent('touchstart', { base: 'mousedown', condition: function() { var bound = this.retrieve('touch:mouseup'); if (!bound) { bound = mouseup.bind(this); this.store('touch:mouseup', bound); } document.addEvent('mouseup', bound); return condition.apply(this, arguments); } }).defineCustomEvent('touchmove', { base: 'mousemove', condition: condition }) })();