Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * 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);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement