diff --git a/js/reveal.js b/js/reveal.js
index ae682ac88ae50e51cdc65a955aa78387212bde71..b1a20ccdb493c0550a788bcaf5c17397742ed6e8 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -3954,6 +3954,8 @@
 	 */
 	function onTouchStart( event ) {
 
+		if(preventSwipe(event.target)) return true;
+
 		touch.startX = event.touches[0].clientX;
 		touch.startY = event.touches[0].clientY;
 		touch.startCount = event.touches.length;
@@ -3977,6 +3979,8 @@
 	 */
 	function onTouchMove( event ) {
 
+		if(preventSwipe(event.target)) return true;
+
 		// Each touch should only trigger one action
 		if( !touch.captured ) {
 			onUserInput( event );
@@ -4267,6 +4271,15 @@
 
 	}
 
+	function preventSwipe(target) {
+		while( target && typeof target.hasAttribute === 'function' ) {
+			if(target.hasAttribute('prevent-swipe')) return true;
+			target = target.parentNode;
+		}
+
+		return false;
+	}
+
 
 	// --------------------------------------------------------------------//
 	// ------------------------ PLAYBACK COMPONENT ------------------------//