/** * jQuery Plugin to obtain touch gestures from iPhone, iPod Touch and iPad, should also work with Android mobile phones (not tested yet!) * Common usage: wipe images (left and right to show the previous or next image) * * @author Andreas Waltl, netCU Internetagentur (http://www.netcu.de) * @version 1.1.1 (9th December 2010) - fix bug (older IE's had problems) * @version 1.1 (1st September 2010) - support wipe up and wipe down * @version 1.0 (15th July 2010) */ (function($){$.fn.touchwipe = function(settings){var config = {min_move_x:20, min_move_y:20, wipeLeft:function(){}, wipeRight:function(){}, wipeUp:function(){}, wipeDown:function(){}, preventDefaultEvents:true}; if (settings)$.extend(config, settings); this.each(function(){var startX; var startY; var isMoving = false; function cancelTouch(){this.removeEventListener('touchmove', onTouchMove); startX = null; isMoving = false}function onTouchMove(e){if (config.preventDefaultEvents){e.preventDefault()}if (isMoving){var x = e.touches[0].pageX; var y = e.touches[0].pageY; var dx = startX - x; var dy = startY - y; if (Math.abs(dx) >= config.min_move_x){cancelTouch(); if (dx > 0){config.wipeLeft()} else{config.wipeRight()}} else if (Math.abs(dy) >= config.min_move_y){cancelTouch(); if (dy > 0){config.wipeDown()} else{config.wipeUp()}}}}function onTouchStart(e){if (e.touches.length == 1){startX = e.touches[0].pageX; startY = e.touches[0].pageY; isMoving = true; this.addEventListener('touchmove', onTouchMove, false)}}if ('ontouchstart'in document.documentElement){this.addEventListener('touchstart', onTouchStart, false)}}); return this}})(jQuery);