| 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>
 |