From 1cf528b13f5d2bb02aa4a00925ee264b310618c1 Mon Sep 17 00:00:00 2001 From: Pacien TRAN-GIRARD Date: Tue, 13 May 2014 00:36:03 +0200 Subject: Update hammer, make usable on desktop --- js/hammer.js | 586 ------------------------------------------------------ js/hammer.min.js | 9 + js/hammer.min.map | 1 + js/slide-deck.js | 15 +- js/slides.js | 2 +- 5 files changed, 19 insertions(+), 594 deletions(-) delete mode 100755 js/hammer.js create mode 100755 js/hammer.min.js create mode 100644 js/hammer.min.map diff --git a/js/hammer.js b/js/hammer.js deleted file mode 100755 index 44a5802..0000000 --- a/js/hammer.js +++ /dev/null @@ -1,586 +0,0 @@ -/* - * Hammer.JS - * version 0.4 - * author: Eight Media - * https://github.com/EightMedia/hammer.js - */ -function Hammer(element, options, undefined) -{ - var self = this; - - var defaults = { - // prevent the default event or not... might be buggy when false - prevent_default : false, - css_hacks : true, - - drag : true, - drag_vertical : true, - drag_horizontal : true, - // minimum distance before the drag event starts - drag_min_distance : 20, // pixels - - // pinch zoom and rotation - transform : true, - scale_treshold : 0.1, - rotation_treshold : 15, // degrees - - tap : true, - tap_double : true, - tap_max_interval : 300, - tap_double_distance: 20, - - hold : true, - hold_timeout : 500 - }; - options = mergeObject(defaults, options); - - // some css hacks - (function() { - if(!options.css_hacks) { - return false; - } - - var vendors = ['webkit','moz','ms','o','']; - var css_props = { - "userSelect": "none", - "touchCallout": "none", - "userDrag": "none", - "tapHighlightColor": "rgba(0,0,0,0)" - }; - - var prop = ''; - for(var i = 0; i < vendors.length; i++) { - for(var p in css_props) { - prop = p; - if(vendors[i]) { - prop = vendors[i] + prop.substring(0, 1).toUpperCase() + prop.substring(1); - } - element.style[ prop ] = css_props[p]; - } - } - })(); - - // holds the distance that has been moved - var _distance = 0; - - // holds the exact angle that has been moved - var _angle = 0; - - // holds the diraction that has been moved - var _direction = 0; - - // holds position movement for sliding - var _pos = { }; - - // how many fingers are on the screen - var _fingers = 0; - - var _first = false; - - var _gesture = null; - var _prev_gesture = null; - - var _touch_start_time = null; - var _prev_tap_pos = {x: 0, y: 0}; - var _prev_tap_end_time = null; - - var _hold_timer = null; - - var _offset = {}; - - // keep track of the mouse status - var _mousedown = false; - - var _event_start; - var _event_move; - var _event_end; - - - /** - * angle to direction define - * @param float angle - * @return string direction - */ - this.getDirectionFromAngle = function( angle ) - { - var directions = { - down: angle >= 45 && angle < 135, //90 - left: angle >= 135 || angle <= -135, //180 - up: angle < -45 && angle > -135, //270 - right: angle >= -45 && angle <= 45 //0 - }; - - var direction, key; - for(key in directions){ - if(directions[key]){ - direction = key; - break; - } - } - return direction; - }; - - - /** - * count the number of fingers in the event - * when no fingers are detected, one finger is returned (mouse pointer) - * @param event - * @return int fingers - */ - function countFingers( event ) - { - // there is a bug on android (until v4?) that touches is always 1, - // so no multitouch is supported, e.g. no, zoom and rotation... - return event.touches ? event.touches.length : 1; - } - - - /** - * get the x and y positions from the event object - * @param event - * @return array [{ x: int, y: int }] - */ - function getXYfromEvent( event ) - { - event = event || window.event; - - // no touches, use the event pageX and pageY - if(!event.touches) { - var doc = document, - body = doc.body; - - return [{ - x: event.pageX || event.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && doc.clientLeft || 0 ), - y: event.pageY || event.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && doc.clientTop || 0 ) - }]; - } - // multitouch, return array with positions - else { - var pos = [], src; - for(var t=0, len=event.touches.length; t options.drag_min_distance) || _gesture == 'drag') { - // calculate the angle - _angle = getAngle(_pos.start[0], _pos.move[0]); - _direction = self.getDirectionFromAngle(_angle); - - // check the movement and stop if we go in the wrong direction - var is_vertical = (_direction == 'up' || _direction == 'down'); - if(((is_vertical && !options.drag_vertical) || (!is_vertical && !options.drag_horizontal)) - && (_distance > options.drag_min_distance)) { - return; - } - - _gesture = 'drag'; - - var position = { x: _pos.move[0].x - _offset.left, - y: _pos.move[0].y - _offset.top }; - - var event_obj = { - originalEvent : event, - position : position, - direction : _direction, - distance : _distance, - distanceX : _distance_x, - distanceY : _distance_y, - angle : _angle - }; - - // on the first time trigger the start event - if(_first) { - triggerEvent("dragstart", event_obj); - - _first = false; - } - - // normal slide event - triggerEvent("drag", event_obj); - - cancelEvent(event); - } - }, - - - // transform gesture - // fired on touchmove - transform : function(event) - { - if(options.transform) { - var scale = event.scale || 1; - var rotation = event.rotation || 0; - - if(countFingers(event) != 2) { - return false; - } - - if(_gesture != 'drag' && - (_gesture == 'transform' || Math.abs(1-scale) > options.scale_treshold - || Math.abs(rotation) > options.rotation_treshold)) { - _gesture = 'transform'; - - _pos.center = { x: ((_pos.move[0].x + _pos.move[1].x) / 2) - _offset.left, - y: ((_pos.move[0].y + _pos.move[1].y) / 2) - _offset.top }; - - var event_obj = { - originalEvent : event, - position : _pos.center, - scale : scale, - rotation : rotation - }; - - // on the first time trigger the start event - if(_first) { - triggerEvent("transformstart", event_obj); - _first = false; - } - - triggerEvent("transform", event_obj); - - cancelEvent(event); - - return true; - } - } - - return false; - }, - - - // tap and double tap gesture - // fired on touchend - tap : function(event) - { - // compare the kind of gesture by time - var now = new Date().getTime(); - var touch_time = now - _touch_start_time; - - // dont fire when hold is fired - if(options.hold && !(options.hold && options.hold_timeout > touch_time)) { - return; - } - - // when previous event was tap and the tap was max_interval ms ago - var is_double_tap = (function(){ - if (_prev_tap_pos && options.tap_double && _prev_gesture == 'tap' && (_touch_start_time - _prev_tap_end_time) < options.tap_max_interval) { - var x_distance = Math.abs(_prev_tap_pos[0].x - _pos.start[0].x); - var y_distance = Math.abs(_prev_tap_pos[0].y - _pos.start[0].y); - return (_prev_tap_pos && _pos.start && Math.max(x_distance, y_distance) < options.tap_double_distance); - - } - return false; - })(); - - if(is_double_tap) { - _gesture = 'double_tap'; - _prev_tap_end_time = null; - - triggerEvent("doubletap", { - originalEvent : event, - position : _pos.start - }); - cancelEvent(event); - } - - // single tap is single touch - else { - _gesture = 'tap'; - _prev_tap_end_time = now; - _prev_tap_pos = _pos.start; - - if(options.tap) { - triggerEvent("tap", { - originalEvent : event, - position : _pos.start - }); - cancelEvent(event); - } - } - - } - - }; - - - function handleEvents(event) - { - switch(event.type) - { - case 'mousedown': - case 'touchstart': - _pos.start = getXYfromEvent(event); - _touch_start_time = new Date().getTime(); - _fingers = countFingers(event); - _first = true; - _event_start = event; - - // borrowed from jquery offset https://github.com/jquery/jquery/blob/master/src/offset.js - var box = element.getBoundingClientRect(); - var clientTop = element.clientTop || document.body.clientTop || 0; - var clientLeft = element.clientLeft || document.body.clientLeft || 0; - var scrollTop = window.pageYOffset || element.scrollTop || document.body.scrollTop; - var scrollLeft = window.pageXOffset || element.scrollLeft || document.body.scrollLeft; - - _offset = { - top: box.top + scrollTop - clientTop, - left: box.left + scrollLeft - clientLeft - }; - - _mousedown = true; - - // hold gesture - gestures.hold(event); - - if(options.prevent_default) { - cancelEvent(event); - } - break; - - case 'mousemove': - case 'touchmove': - if(!_mousedown) { - return false; - } - _event_move = event; - _pos.move = getXYfromEvent(event); - - if(!gestures.transform(event)) { - gestures.drag(event); - } - break; - - case 'mouseup': - case 'mouseout': - case 'touchcancel': - case 'touchend': - if(!_mousedown || (_gesture != 'transform' && event.touches && event.touches.length > 0)) { - return false; - } - - _mousedown = false; - _event_end = event; - - // drag gesture - // dragstart is triggered, so dragend is possible - if(_gesture == 'drag') { - triggerEvent("dragend", { - originalEvent : event, - direction : _direction, - distance : _distance, - angle : _angle - }); - } - - // transform - // transformstart is triggered, so transformed is possible - else if(_gesture == 'transform') { - triggerEvent("transformend", { - originalEvent : event, - position : _pos.center, - scale : event.scale, - rotation : event.rotation - }); - } - else { - gestures.tap(_event_start); - } - - _prev_gesture = _gesture; - - // reset vars - reset(); - break; - } - } - - - // bind events for touch devices - // except for windows phone 7.5, it doesnt support touch events..! - if('ontouchstart' in window) { - element.addEventListener("touchstart", handleEvents, false); - element.addEventListener("touchmove", handleEvents, false); - element.addEventListener("touchend", handleEvents, false); - element.addEventListener("touchcancel", handleEvents, false); - } - // for non-touch - else { - - if(element.addEventListener){ // prevent old IE errors - element.addEventListener("mouseout", function(event) { - if(!isInsideHammer(element, event.relatedTarget)) { - handleEvents(event); - } - }, false); - element.addEventListener("mouseup", handleEvents, false); - element.addEventListener("mousedown", handleEvents, false); - element.addEventListener("mousemove", handleEvents, false); - - // events for older IE - }else if(document.attachEvent){ - element.attachEvent("onmouseout", function(event) { - if(!isInsideHammer(element, event.relatedTarget)) { - handleEvents(event); - } - }, false); - element.attachEvent("onmouseup", handleEvents); - element.attachEvent("onmousedown", handleEvents); - element.attachEvent("onmousemove", handleEvents); - } - } - - - /** - * find if element is (inside) given parent element - * @param object element - * @param object parent - * @return bool inside - */ - function isInsideHammer(parent, child) { - // get related target for IE - if(!child && window.event && window.event.toElement){ - child = window.event.toElement; - } - - if(parent === child){ - return true; - } - - // loop over parentNodes of child until we find hammer element - if(child){ - var node = child.parentNode; - while(node !== null){ - if(node === parent){ - return true; - }; - node = node.parentNode; - } - } - return false; - } - - - /** - * merge 2 objects into a new object - * @param object obj1 - * @param object obj2 - * @return object merged object - */ - function mergeObject(obj1, obj2) { - var output = {}; - - if(!obj2) { - return obj1; - } - - for (var prop in obj1) { - if (prop in obj2) { - output[prop] = obj2[prop]; - } else { - output[prop] = obj1[prop]; - } - } - return output; - } - - function isFunction( obj ){ - return Object.prototype.toString.call( obj ) == "[object Function]"; - } -} \ No newline at end of file diff --git a/js/hammer.min.js b/js/hammer.min.js new file mode 100755 index 0000000..32a076f --- /dev/null +++ b/js/hammer.min.js @@ -0,0 +1,9 @@ +/*! Hammer.JS - v1.1.2 - 2014-04-25 + * http://eightmedia.github.io/hammer.js + * + * Copyright (c) 2014 Jorik Tangelder ; + * Licensed under the MIT license */ + + +!function(a,b){"use strict";function c(){d.READY||(s.determineEventTypes(),r.each(d.gestures,function(a){u.register(a)}),s.onTouch(d.DOCUMENT,n,u.detect),s.onTouch(d.DOCUMENT,o,u.detect),d.READY=!0)}var d=function v(a,b){return new v.Instance(a,b||{})};d.VERSION="1.1.2",d.defaults={behavior:{userSelect:"none",touchAction:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},d.DOCUMENT=document,d.HAS_POINTEREVENTS=navigator.pointerEnabled||navigator.msPointerEnabled,d.HAS_TOUCHEVENTS="ontouchstart"in a,d.IS_MOBILE=/mobile|tablet|ip(ad|hone|od)|android|silk/i.test(navigator.userAgent),d.NO_MOUSEEVENTS=d.HAS_TOUCHEVENTS&&d.IS_MOBILE||d.HAS_POINTEREVENTS,d.CALCULATE_INTERVAL=25;var e={},f=d.DIRECTION_DOWN="down",g=d.DIRECTION_LEFT="left",h=d.DIRECTION_UP="up",i=d.DIRECTION_RIGHT="right",j=d.POINTER_MOUSE="mouse",k=d.POINTER_TOUCH="touch",l=d.POINTER_PEN="pen",m=d.EVENT_START="start",n=d.EVENT_MOVE="move",o=d.EVENT_END="end",p=d.EVENT_RELEASE="release",q=d.EVENT_TOUCH="touch";d.READY=!1,d.plugins=d.plugins||{},d.gestures=d.gestures||{};var r=d.utils={extend:function(a,c,d){for(var e in c)!c.hasOwnProperty(e)||a[e]!==b&&d||(a[e]=c[e]);return a},on:function(a,b,c){a.addEventListener(b,c,!1)},off:function(a,b,c){a.removeEventListener(b,c,!1)},each:function(a,c,d){var e,f;if("forEach"in a)a.forEach(c,d);else if(a.length!==b){for(e=0,f=a.length;f>e;e++)if(c.call(d,a[e],e,a)===!1)return}else for(e in a)if(a.hasOwnProperty(e)&&c.call(d,a[e],e,a)===!1)return},inStr:function(a,b){return a.indexOf(b)>-1},inArray:function(a,b){if(a.indexOf){var c=a.indexOf(b);return-1===c?!1:c}for(var d=0,e=a.length;e>d;d++)if(a[d]===b)return d;return!1},toArray:function(a){return Array.prototype.slice.call(a,0)},hasParent:function(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1},getCenter:function(a){var b=[],c=[],d=[],e=[],f=Math.min,g=Math.max;return 1===a.length?{pageX:a[0].pageX,pageY:a[0].pageY,clientX:a[0].clientX,clientY:a[0].clientY}:(r.each(a,function(a){b.push(a.pageX),c.push(a.pageY),d.push(a.clientX),e.push(a.clientY)}),{pageX:(f.apply(Math,b)+g.apply(Math,b))/2,pageY:(f.apply(Math,c)+g.apply(Math,c))/2,clientX:(f.apply(Math,d)+g.apply(Math,d))/2,clientY:(f.apply(Math,e)+g.apply(Math,e))/2})},getVelocity:function(a,b,c){return{x:Math.abs(b/a)||0,y:Math.abs(c/a)||0}},getAngle:function(a,b){var c=b.clientX-a.clientX,d=b.clientY-a.clientY;return 180*Math.atan2(d,c)/Math.PI},getDirection:function(a,b){var c=Math.abs(a.clientX-b.clientX),d=Math.abs(a.clientY-b.clientY);return c>=d?a.clientX-b.clientX>0?g:i:a.clientY-b.clientY>0?h:f},getDistance:function(a,b){var c=b.clientX-a.clientX,d=b.clientY-a.clientY;return Math.sqrt(c*c+d*d)},getScale:function(a,b){return a.length>=2&&b.length>=2?this.getDistance(b[0],b[1])/this.getDistance(a[0],a[1]):1},getRotation:function(a,b){return a.length>=2&&b.length>=2?this.getAngle(b[1],b[0])-this.getAngle(a[1],a[0]):0},isVertical:function(a){return a==h||a==f},setPrefixedCss:function(a,b,c,d){var e=["","Webkit","Moz","O","ms"];b=r.toCamelCase(b);for(var f=0;f0&&this.started&&(g=n),this.started=!0;var j=this.collectEventData(c,g,e,a);return b!=o&&d.call(u,j),h&&(j.changedLength=i,j.eventType=h,d.call(u,j),j.eventType=g,delete j.changedLength),g==o&&(d.call(u,j),this.started=!1),g},determineEventTypes:function(){var b;return b=d.HAS_POINTEREVENTS?a.PointerEvent?["pointerdown","pointermove","pointerup pointercancel lostpointercapture"]:["MSPointerDown","MSPointerMove","MSPointerUp MSPointerCancel MSLostPointerCapture"]:d.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],e[m]=b[0],e[n]=b[1],e[o]=b[2],e},getTouchList:function(a,b){if(d.HAS_POINTEREVENTS)return t.getTouchList();if(a.touches){if(b==n)return a.touches;var c=[],e=[].concat(r.toArray(a.touches),r.toArray(a.changedTouches)),f=[];return r.each(e,function(a){r.inArray(c,a.identifier)===!1&&f.push(a),c.push(a.identifier)}),f}return a.identifier=1,[a]},collectEventData:function(a,b,c,d){var e=k;return r.inStr(d.type,"mouse")||t.matchType(j,d)?e=j:t.matchType(l,d)&&(e=l),{center:r.getCenter(c),timeStamp:Date.now(),target:d.target,touches:c,eventType:b,pointerType:e,srcEvent:d,preventDefault:function(){var a=this.srcEvent;a.preventManipulation&&a.preventManipulation(),a.preventDefault&&a.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return u.stopDetect()}}}},t=d.PointerEvent={pointers:{},getTouchList:function(){var a=[];return r.each(this.pointers,function(b){a.push(b)}),a},updatePointer:function(a,b){a==o||a!=o&&1!==b.buttons?delete this.pointers[b.pointerId]:(b.identifier=b.pointerId,this.pointers[b.pointerId]=b)},matchType:function(a,b){if(!b.pointerType)return!1;var c=b.pointerType,d={};return d[j]=c===(b.MSPOINTER_TYPE_MOUSE||j),d[k]=c===(b.MSPOINTER_TYPE_TOUCH||k),d[l]=c===(b.MSPOINTER_TYPE_PEN||l),d[a]},reset:function(){this.pointers={}}},u=d.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(a,b){this.current||(this.stopped=!1,this.current={inst:a,startEvent:r.extend({},b),lastEvent:!1,lastCalcEvent:!1,futureCalcEvent:!1,lastCalcData:{},name:""},this.detect(b))},detect:function(a){if(this.current&&!this.stopped){a=this.extendEventData(a);var b=this.current.inst,c=b.options;return r.each(this.gestures,function(d){return!this.stopped&&b.enabled&&c[d.name]&&d.handler.call(d,a,b)===!1?(this.stopDetect(),!1):void 0},this),this.current&&(this.current.lastEvent=a),a.eventType==o&&this.stopDetect(),a}},stopDetect:function(){this.previous=r.extend({},this.current),this.current=null,this.stopped=!0},getCalculatedData:function(a,b,c,e,f){var g=this.current,h=!1,i=g.lastCalcEvent,j=g.lastCalcData;i&&a.timeStamp-i.timeStamp>d.CALCULATE_INTERVAL&&(b=i.center,c=a.timeStamp-i.timeStamp,e=a.center.clientX-i.center.clientX,f=a.center.clientY-i.center.clientY,h=!0),(a.eventType==q||a.eventType==p)&&(g.futureCalcEvent=a),(!g.lastCalcEvent||h)&&(j.velocity=r.getVelocity(c,e,f),j.angle=r.getAngle(b,a.center),j.direction=r.getDirection(b,a.center),g.lastCalcEvent=g.futureCalcEvent||a,g.futureCalcEvent=a),a.velocityX=j.velocity.x,a.velocityY=j.velocity.y,a.interimAngle=j.angle,a.interimDirection=j.direction},extendEventData:function(a){var b=this.current,c=b.startEvent,d=b.lastEvent||c;(a.eventType==q||a.eventType==p)&&(c.touches=[],r.each(a.touches,function(a){c.touches.push({clientX:a.clientX,clientY:a.clientY})}));var e=a.timeStamp-c.timeStamp,f=a.center.clientX-c.center.clientX,g=a.center.clientY-c.center.clientY;return this.getCalculatedData(a,d.center,e,f,g),r.extend(a,{startEvent:c,deltaTime:e,deltaX:f,deltaY:g,distance:r.getDistance(c.center,a.center),angle:r.getAngle(c.center,a.center),direction:r.getDirection(c.center,a.center),scale:r.getScale(c.touches,a.touches),rotation:r.getRotation(c.touches,a.touches)}),a},register:function(a){var c=a.defaults||{};return c[a.name]===b&&(c[a.name]=!0),r.extend(d.defaults,c,!0),a.index=a.index||1e3,this.gestures.push(a),this.gestures.sort(function(a,b){return a.indexb.index?1:0}),this.gestures}};d.Instance=function(a,b){var e=this;c(),this.element=a,this.enabled=!0,r.each(b,function(a,c){delete b[c],b[r.toCamelCase(c)]=a}),this.options=r.extend(r.extend({},d.defaults),b||{}),this.options.behavior&&r.toggleBehavior(this.element,this.options.behavior,!0),this.eventStartHandler=s.onTouch(a,m,function(a){e.enabled&&a.eventType==m?u.startDetect(e,a):a.eventType==q&&u.detect(a)}),this.eventHandlers=[]},d.Instance.prototype={on:function(a,b){var c=this;return s.on(c.element,a,b,function(a){c.eventHandlers.push({gesture:a,handler:b})}),c},off:function(a,b){var c=this;return s.off(c.element,a,b,function(a){var d=r.inArray({gesture:a,handler:b});d!==!1&&c.eventHandlers.splice(d,1)}),c},trigger:function(a,b){b||(b={});var c=d.DOCUMENT.createEvent("Event");c.initEvent(a,!0,!0),c.gesture=b;var e=this.element;return r.hasParent(b.target,e)&&(e=b.target),e.dispatchEvent(c),this},enable:function(a){return this.enabled=a,this},dispose:function(){var a,b;for(r.toggleBehavior(this.element,this.options.behavior,!1),a=-1;b=this.eventHandlers[++a];)r.off(this.element,b.gesture,b.handler);return this.eventHandlers=[],s.off(this.element,e[m],this.eventStartHandler),null}},function(a){function b(b,d){var e=u.current;if(!(d.options.dragMaxTouches>0&&b.touches.length>d.options.dragMaxTouches))switch(b.eventType){case m:c=!1;break;case n:if(b.distance0)){var k=Math.abs(d.options.dragMinDistance/b.distance);j.pageX+=b.deltaX*k,j.pageY+=b.deltaY*k,j.clientX+=b.deltaX*k,j.clientY+=b.deltaY*k,b=u.extendEventData(b)}(e.lastEvent.dragLockToAxis||d.options.dragLockToAxis&&d.options.dragLockMinDistance<=b.distance)&&(b.dragLockToAxis=!0);var l=e.lastEvent.direction;b.dragLockToAxis&&l!==b.direction&&(b.direction=r.isVertical(l)?b.deltaY<0?h:f:b.deltaX<0?g:i),c||(d.trigger(a+"start",b),c=!0),d.trigger(a,b),d.trigger(a+b.direction,b);var q=r.isVertical(b.direction);(d.options.dragBlockVertical&&q||d.options.dragBlockHorizontal&&!q)&&b.preventDefault();break;case p:c&&b.changedLength<=d.options.dragMaxTouches&&(d.trigger(a+"end",b),c=!1);break;case o:c=!1}}var c=!1;d.gestures.Drag={name:a,index:50,handler:b,defaults:{dragMinDistance:10,dragDistanceCorrection:!0,dragMaxTouches:1,dragBlockHorizontal:!1,dragBlockVertical:!1,dragLockToAxis:!1,dragLockMinDistance:25}}}("drag"),d.gestures.Gesture={name:"gesture",index:1337,handler:function(a,b){b.trigger(this.name,a)}},function(a){function b(b,d){var e=d.options,f=u.current;switch(b.eventType){case m:clearTimeout(c),f.name=a,c=setTimeout(function(){f&&f.name==a&&d.trigger(a,b)},e.holdTimeout);break;case n:b.distance>e.holdThreshold&&clearTimeout(c);break;case p:clearTimeout(c)}}var c;d.gestures.Hold={name:a,index:10,defaults:{holdTimeout:500,holdThreshold:2},handler:b}}("hold"),d.gestures.Release={name:"release",index:1/0,handler:function(a,b){a.eventType==p&&b.trigger(this.name,a)}},d.gestures.Swipe={name:"swipe",index:40,defaults:{swipeMinTouches:1,swipeMaxTouches:1,swipeVelocityX:.6,swipeVelocityY:.6},handler:function(a,b){if(a.eventType==p){var c=a.touches.length,d=b.options;if(cd.swipeMaxTouches)return;(a.velocityX>d.swipeVelocityX||a.velocityY>d.swipeVelocityY)&&(b.trigger(this.name,a),b.trigger(this.name+a.direction,a))}}},function(a){function b(b,d){var e,f,g=d.options,h=u.current,i=u.previous;switch(b.eventType){case m:c=!1;break;case n:c=c||b.distance>g.tapMaxDistance;break;case o:"touchcancel"!=b.srcEvent.type&&b.deltaTimed.options.transformMinRotation&&d.trigger("rotate",b),e>d.options.transformMinScale&&(d.trigger("pinch",b),d.trigger("pinch"+(b.scale<1?"in":"out"),b));break;case p:c&&b.changedLength<2&&(d.trigger(a+"end",b),c=!1)}}var c=!1;d.gestures.Transform={name:a,index:45,defaults:{transformMinScale:.01,transformMinRotation:1},handler:b}}("transform"),"function"==typeof define&&define.amd?define(function(){return d}):"undefined"!=typeof module&&module.exports?module.exports=d:a.Hammer=d}(window); +//# sourceMappingURL=hammer.min.map \ No newline at end of file diff --git a/js/hammer.min.map b/js/hammer.min.map new file mode 100644 index 0000000..51d4f11 --- /dev/null +++ b/js/hammer.min.map @@ -0,0 +1 @@ +{"version":3,"file":"hammer.min.js","sources":["hammer.js"],"names":["window","undefined","setup","Hammer","READY","Event","determineEventTypes","Utils","each","gestures","gesture","Detection","register","onTouch","DOCUMENT","EVENT_MOVE","detect","EVENT_END","element","options","Instance","VERSION","defaults","behavior","userSelect","touchAction","touchCallout","contentZooming","userDrag","tapHighlightColor","document","HAS_POINTEREVENTS","navigator","pointerEnabled","msPointerEnabled","HAS_TOUCHEVENTS","IS_MOBILE","test","userAgent","NO_MOUSEEVENTS","CALCULATE_INTERVAL","EVENT_TYPES","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_UP","DIRECTION_RIGHT","POINTER_MOUSE","POINTER_TOUCH","POINTER_PEN","EVENT_START","EVENT_RELEASE","EVENT_TOUCH","plugins","utils","extend","dest","src","merge","key","hasOwnProperty","on","type","handler","addEventListener","off","removeEventListener","obj","iterator","context","i","len","forEach","length","call","inStr","find","indexOf","inArray","index","toArray","Array","prototype","slice","hasParent","node","parent","parentNode","getCenter","touches","pageX","pageY","clientX","clientY","min","Math","max","touch","push","apply","getVelocity","deltaTime","deltaX","deltaY","x","abs","y","getAngle","touch1","touch2","atan2","PI","getDirection","getDistance","sqrt","getScale","start","end","this","getRotation","isVertical","direction","setPrefixedCss","prop","value","toggle","prefixes","toCamelCase","p","toUpperCase","style","toggleBehavior","props","falseFn","onselectstart","ondragstart","str","replace","s","event","preventMouseEvents","started","shouldDetect","hook","types","split","eventType","self","onTouchHandler","ev","triggerType","srcType","toLowerCase","isPointer","isMouse","button","buttons","PointerEvent","matchType","updatePointer","doDetect","reset","touchList","getTouchList","touchListLength","triggerChange","trigger","changedLength","changedTouches","evData","collectEventData","identifiers","concat","identifier","pointerType","center","timeStamp","Date","now","target","srcEvent","preventDefault","preventManipulation","stopPropagation","stopDetect","pointers","touchlist","pointer","pointerEvent","pointerId","pt","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_TOUCH","MSPOINTER_TYPE_PEN","detection","current","previous","stopped","startDetect","inst","eventData","startEvent","lastEvent","lastCalcEvent","futureCalcEvent","lastCalcData","name","extendEventData","instOptions","enabled","getCalculatedData","cur","recalc","calcEv","calcData","velocity","angle","velocityX","velocityY","interimAngle","interimDirection","startEv","lastEv","distance","scale","rotation","sort","a","b","eventStartHandler","eventHandlers","splice","createEvent","initEvent","dispatchEvent","enable","state","dispose","eh","dragGesture","dragMaxTouches","triggered","dragMinDistance","startCenter","dragDistanceCorrection","factor","dragLockToAxis","dragLockMinDistance","lastDirection","dragBlockVertical","dragBlockHorizontal","Drag","Gesture","holdGesture","clearTimeout","timer","setTimeout","holdTimeout","holdThreshold","Hold","Release","Infinity","Swipe","swipeMinTouches","swipeMaxTouches","swipeVelocityX","swipeVelocityY","tapGesture","sincePrev","didDoubleTap","prev","hasMoved","tapMaxDistance","tapMaxTime","doubleTapInterval","doubleTapDistance","tapAlways","Tap","Touch","preventMouse","transformGesture","scaleThreshold","rotationThreshold","transformMinScale","transformMinRotation","Transform","define","amd","module","exports"],"mappings":"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"} \ No newline at end of file diff --git a/js/slide-deck.js b/js/slide-deck.js index 559b761..266de5c 100644 --- a/js/slide-deck.js +++ b/js/slide-deck.js @@ -415,8 +415,9 @@ SlideDeck.prototype.loadConfig_ = function(config) { this.container.appendChild(el); } - if (Modernizr.touch - && (!!!('enableTouch' in settings) || settings.enableTouch)) { + if (/* + * Modernizr.touch && + */(!!!('enableTouch' in settings) || settings.enableTouch)) { var self = this; // Note: this prevents mobile zoom in/out but prevents iOS from doing @@ -425,13 +426,13 @@ SlideDeck.prototype.loadConfig_ = function(config) { e.preventDefault(); }, false); - require([ 'hammer' ], function() { - var hammer = new Hammer(this.container); - hammer.ondragend = function(e) { + require([ 'hammer' ], function(Hammer) { + var hammer = new Hammer(self.container); + hammer.on('swipe', function(e) { var evt = document.createEvent('Event'); evt.initEvent('keydown', true, true); - switch (e.direction) { + switch (e.gesture.direction) { case 'right': // previous slide evt.keyCode = 37; @@ -443,7 +444,7 @@ SlideDeck.prototype.loadConfig_ = function(config) { } document.dispatchEvent(evt); - }; + }); }); } diff --git a/js/slides.js b/js/slides.js index c2d0b5c..bfef324 100644 --- a/js/slides.js +++ b/js/slides.js @@ -6,7 +6,7 @@ require.config({ 'modernizr' : 'modernizr.custom.56571', 'prettify' : 'prettify/prettify', - 'hammer' : 'hammer', + 'hammer' : 'hammer.min', }, shim : { -- cgit v1.2.3