因为最近开发的项目涉及到移动设备上的 HTML5 开发,其中需要实现轮播效果。然后最快捷的方式,你知道的(Bootstrap),然后原生的 Bootstrap 的 carousel.js 插件并没有支持手势。

因为最近开发的项目涉及到移动设备上的 HTML5 开发,其中需要实现轮播效果。然后最快捷的方式,你知道的(Bootstrap),然后原生的 Bootstrap 的 carousel.js 插件并没有支持手势。

然后......自己想办法呗,再然后,就有下面3种解决方案 :

jQuery Mobile

http://jquerymobile.com/download/

<pre class="prettyprint lang-js linenums:1"> $("#carousel-generic").swipeleft(function() {
$(this).carousel('next');
});

$("#carousel-generic").swiperight(function() {
$(this).carousel('prev');
});</pre>

TouchSwipe jQuery plugin

https://github.com/mattbryson/TouchSwipe-Jquery-Plugin

<pre class="prettyprint lang-js linenums:1"> $("#carousel-generic").swipe({
swipeLeft: function() { $(this).carousel('next'); },
swipeRight: function() { $(this).carousel('prev'); },
});</pre>

hammer.js + jquery.hammer.js

http://eightmedia.github.io/hammer.js/

https://github.com/EightMedia/jquery.hammer.js

<pre class="prettyprint lang-js linenums:1"> $('#carousel-generic').hammer().on('swipeleft', function(){
$(this).carousel('next');
});

$('#carousel-generic').hammer().on('swiperight', function(){
$(this).carousel('prev');
});</pre>

单单为了支持滑动手势而导入整个 jQuery Mobile 貌似有些大材小用,
而 TouchSwipe 在两边可点击按钮区域滑动无效,然后选择了 Hammer。

英文原文:http://lazcreative.com/blog/adding-swipe-support-to-bootstrap-carousel-3-0/