Emulate multi-touch input on your desktop. Triggers touch events as
specified by W3C. Press the shift key to pinch and rotate!
Download the script from this repo, via Bower:
bower install hammer-touchemulatoror NPM:
npm install hammer-touchemulatorInclude the javascript file, and call the Emulator() function before any other libraries that do something with the
touch input. It will set some fake properties to spoof the touch detection of some libraries, and triggers touchstart, touchmove and touchend events on the mouse target.
<script src="touch-emulator.js"></script>
<script> TouchEmulator(); </script>function log(ev) {
console.log(ev);
}
document.body.addEventListener('touchstart', log, false);
document.body.addEventListener('touchmove', log, false);
document.body.addEventListener('touchend', log, false);Also, the script includes polyfills for document.createTouch and document.createTouchList.
It listens to the mousedown, mousemove and mouseup events, and translates them to touch events. If the mouseevent
has the shiftKey property to true, it enables multi-touch.
The script also prevents the following mouse events on the page:
mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover and mouseup.
The script has been tested with the w3c web platform tests and passes all tests, except these;
- assert_true: event is a TouchEvent event expected true got false
- We trigger an event of the type
Event
- We trigger an event of the type
- assert_equals: touch list is of type TouchList expected "[object TouchList]" but got "[object Array]"
- assert_equals: touch is of type Touch expected "[object Touch]" but got "[object Object]"
javascript:!function(a){var b=a.createElement("script");b.onload=function(){TouchEmulator()},b.src="//cdn.rawgit.com/hammerjs/touchemulator/0.0.2/touch-emulator.js",a.body.appendChild(b)}(document);Change the css properties of the rendered touches.
The distance between the two touch points when entering the multi-touch zone.
The names of HTML tags that shouldn't swallow mouse events (default: ['TEXTAREA', 'INPUT']).