From 1cb35ddd4bd20311dc0d2ca2ae6d278d7dd7844b Mon Sep 17 00:00:00 2001 From: Ryan Blakeley Date: Wed, 29 Oct 2014 11:24:08 -0500 Subject: [PATCH] added touch support --- js/base.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/js/base.js b/js/base.js index 6e33a71..40529b9 100644 --- a/js/base.js +++ b/js/base.js @@ -64,6 +64,7 @@ $(document).ready(function() { setupCoverflow(); setupCrane(); setupMap(); + setupTouch(); // demo menu $('.example-menu a').bind('click', onDemoNav); @@ -394,3 +395,33 @@ function clamp(val, min, max) { if(val < min) return min; return val; } + +function touchHandler(event) { + var touches = event.changedTouches; + var first = touches[0]; + var type = ''; + + switch(event.type) { + case 'touchstart' : type = 'mousedown'; break; + case 'touchmove' : type = 'mousemove'; break; + case 'touchend' : type = 'mouseup'; break; + default : return; + } + + var simulatedEvent = document.createEvent('MouseEvent'); + + simulatedEvent.initMouseEvent(type, true, true, window, 1, + first.screenX, first.screenY, + first.clientX, first.clientY, false, + false, false, false, 0/*left*/, null); + first.target.dispatchEvent(simulatedEvent); + + if(event.type == 'mousemove') { event.preventDefault() } +} + +function setupTouch() { + document.addEventListener('touchstart', touchHandler, true); + document.addEventListener('touchmove', touchHandler, true); + document.addEventListener('touchend', touchHandler, true); + document.addEventListener('touchcancel', touchHandler, true); +}