jQuery Touchwipe can bring wipe gesture from touch screens for iPhone, iPad and iPod Touch, it should also work on Android Platform. Here is a how to for WordPress. Readers are requested to read How to Correctly Include jQuery-UI Effects on WordPress and example implementation with jQuery ScrollTo and Custom Tables in WordPress Posts.
Apart from jQuery Touchwipe Plugin, there are other jQuery Plugins to get closer effects, but we think jQuery Touchwipe Plugin is superior from them at the time of testing and publishing this post.
jQuery Touchwipe Plugin : Basics and Download
jQuery Touchwipe Plugin is a small 1 KB library allows you to obtain the wipe event on an iPhone, iPad or iPod Touch which can be used for example to scroll through an image gallery. Technically, it should also work with Android touchscreens.
---
One can use device emulator on XCode (Mac) to simulate and test the practical example. jQuery Touchwipe Plugin can be injected via WordPress Enqueue Script function. So we need to include easily by this snippet :
1 2 3 4 | function theme_name_scripts(){ wp_enqueue_script( 'script-name', get_template_directory_uri() . '/js/example.js', array(), '1.0.0', true ); } add_action( 'wp_enqueue_scripts', 'theme_name_scripts' ); |
The download source and example is here :
1 | http://www.netcu.de/jquery-touchwipe-iphone-ipad-library |
jQuery Touchwipe Plugin : Basics and Download
As the common usage is to wipe images; left and right to show the previous or next image; it is only practical where a slider, for example has been used. Default wipe for some wipes using jQuery Touchwipe Plugin :
With this small patch to the jquery.touchwipe library:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | if(Math.abs(dx) >= config.min_move_x) { cancelTouch(); if(dx > 0) { - config.wipeLeft(); + config.wipeLeft(e); } else { - config.wipeRight(); + config.wipeRight(e); } } else if(Math.abs(dy) >= config.min_move_y) { cancelTouch(); if(dy > 0) { - config.wipeDown(); + config.wipeDown(e); } else { - config.wipeUp(); + config.wipeUp(e); } } |
you can then change your code to selectively call e.preventDefault():
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $(document).ready(function() { $('#imagegallery').cycle({ timeout: 0, fx: 'scrollHorz', next: '#next', prev: '#prev' } ); $("#imagegallery").touchwipe({ wipeLeft: function(e) { e.preventDefault(); $("#imagegallery").cycle("next"); }, wipeRight: function(e) { e.preventDefault(); $("#imagegallery").cycle("prev"); }, preventDefaultEvents: false }); }); |