Make bootstrap carousel responsive to swipe

What?
A quick reminder on how to make the carousel in bootstrap compatible with touch devices like smartphones and tablets.

Why?
Feed back was that the user was unimpressed with the image slideshow. You have to tap on the left and right symbols...

How?
Some will suggest to load the jQueryMobile library but that started messing up the template layouts for me. I really like the solution (and think it should be voted best answer) put forward by Mark Shiraldi:

The code is minimal but does what it needs to do (tested on iOS) and doesn't appear to effect other javascripts. Put this in a JS:
copyraw
/*! Bootstrap Carousel Swipe jQuery plugin v1.1 | https://github.com/maaaaark/bcSwipe | MIT License */
!function(t){	
	t.fn.bcSwipe=function(e){
		var n={threshold:50};
		return e&&t.extend(n,e),this.each(
			function(){
				function e(t){
					1==t.touches.length&&(u=t.touches[0].pageX,c=!0,this.addEventListener("touchmove",o,!1))
				}
				function o(e){
					if(c){
						var o=e.touches[0].pageX,i=u-o;Math.abs(i)>=n.threshold&&(h(),t(this).carousel(i>0?"next":"prev"))
					}
				}
				function h(){
					this.removeEventListener("touchmove",o),u=null,c=!1
				}
				var u,c=!1;"ontouchstart"in document.documentElement&&this.addEventListener("touchstart",e,!1)
			}
		),this
	}
}(jQuery);
$('.carousel').bcSwipe({ threshold: 50 });
  1.  /*! Bootstrap Carousel Swipe jQuery plugin v1.1 | https://github.com/maaaaark/bcSwipe | MIT License */ 
  2.  !function(t){ 
  3.      t.fn.bcSwipe=function(e){ 
  4.          var n={threshold:50}
  5.          return e&&t.extend(n,e),this.each( 
  6.              function(){ 
  7.                  function e(t){ 
  8.                      1==t.touches.length&&(u=t.touches[0].pageX,c=!0,this.addEventListener("touchmove",o,!1)) 
  9.                  } 
  10.                  function o(e){ 
  11.                      if(c){ 
  12.                          var o=e.touches[0].pageX,i=u-o;Math.abs(i)>=n.threshold&&(h(),t(this).carousel(i>0?"next":"prev")) 
  13.                      } 
  14.                  } 
  15.                  function h(){ 
  16.                      this.removeEventListener("touchmove",o),u=null,c=!1 
  17.                  } 
  18.                  var u,c=!1;"ontouchstart"in document.documentElement&&this.addEventListener("touchstart",e,!1) 
  19.              } 
  20.          ),this 
  21.      } 
  22.  }(jQuery)
  23.  $('.carousel').bcSwipe({ threshold: 50 })

Source(s):
Category: Bootstrap :: Article: 645

Add comment

Your rating:

Submit

Accreditation

Badge - Zoho Creator Certified Developer Associate
Badge - Zoho Deluge Certified Developer
Badge - Certified Zoho CRM Developer

Donate & Support

If you like my content, and would like to support this sharing site, feel free to donate using a method below:

Paypal:
Donate to Joel Lipman via PayPal

Bitcoin:
Donate to Joel Lipman with Bitcoin bc1qf6elrdxc968h0k673l2djc9wrpazhqtxw8qqp4

Ethereum:
Donate to Joel Lipman with Ethereum 0xb038962F3809b425D661EF5D22294Cf45E02FebF

Please publish modules in offcanvas position.