123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <!DOCTYPE html>
- <html>
- <head lang="en">
- <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1, maximum-scale=1">
- <link rel="stylesheet" href="assets/style.css">
- <title>Hammer.js</title>
- </head>
- <body>
- <div class="container">
- <div id="maps" style="height: 500px; margin-bottom: 20px;"></div>
- <h1>Gestures simulator</h1>
- <p>Used for unit-testing Hammer.js. To test it on the Google Maps view, you should open your
- <a href="https://developer.chrome.com/devtools/docs/mobile-emulation#emulate-touch-events">
- Inspector and emulate a touch-screen.</a>
- Or just open it on your touch-device.</p>
- <p>Currently, it only triggers touchEvents.</p>
- </div>
- <script src="../../node_modules/hammer-simulator/index.js"></script>
- <script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
- <script>
- Simulator.events.touch.fakeSupport();
- var el, map;
- var container = document.getElementById('maps');
- var program = [
- ['pan', ['deltaX','deltaY']],
- ['pinch', ['scale']],
- ['tap', ['pos']],
- ['swipe', ['deltaX','deltaY']],
- ['pinch', ['pos','scale']],
- ['pan', ['pos']],
- ['rotate', ['pos','rotation']],
- ['doubleTap', ['pos']],
- ['pinchRotate', ['pos','scale','rotation']],
- ];
- function randomRange(min, max) {
- return Math.random() * (max - min) + min;
- }
- function randomRangeInt(min, max) {
- return Math.round(randomRange(min, max));
- }
- function gestureOption(name) {
- var max = map.getDiv().offsetWidth * .9;
- switch(name) {
- case 'deltaY':
- case 'deltaX':
- return randomRangeInt(10, max * .5);
- case 'pos':
- return [randomRangeInt(10, max), randomRangeInt(10, max)];
- case 'scale':
- return randomRange(.2, 2);
- case 'rotation':
- return randomRange(-180, 180);
- }
- }
- function walkProgram(done) {
- var clone = [].concat(program);
- (function next() {
- if(clone.length) {
- var entry = clone.shift();
- var options = {};
- for(var i=0; i<entry[1].length; i++) {
- options[entry[1][i]] = gestureOption(entry[1][i]);
- }
- Simulator.gestures[entry[0]](el, options, next);
- } else {
- done();
- }
- }());
- }
- function startSimulator() {
- walkProgram(startSimulator);
- }
- (function setupGoogleMaps() {
- map = new google.maps.Map(container, {
- zoom: 14,
- center: new google.maps.LatLng(51.98, 5.91)
- });
- // collect the target element
- google.maps.event.addListenerOnce(map, 'idle', function(){
- el = container.childNodes[0].childNodes[0];
- startSimulator();
- });
- })();
- </script>
- </body>
- </html>
|