TouchSwipe一款專門為移動設備設計的jquery插件,用於監聽單個和多個手指觸摸等事件。
一、特點:
1、監聽滑動的4個方向:上、下、左、右;
2、監聽多個手指收縮還是外張;
3、支持單手指或雙手指觸摸事件;
4、支持單擊事件touchSwipe對象和它的子對象;
5、可定義臨界值和最大時間來判斷手勢的實際滑動;
6、滑動事件有4個觸發點:“開始”,“移動”,“結束”和“取消”;
7、結束事件可以在觸摸釋放或是達到臨界值時觸發;
8、允許手指刷和頁面滾屏;
9、可禁止用戶通過輸入元素(如:按鈕、表單、文本框等)觸發事件;
二、安裝
1、NPM
npm install jquery-touchswipe --save
2、Bower
bower install jquery-touchswipe --save
3、將壓縮文件添加到你的項目里
<script src="js/jquery.touchSwipe.min.js" type="text/javascript"></script>
4、使用
$(function() { $("#test").swipe( { //Generic swipe handler for all directions swipe:function(event, direction, distance, duration, fingerCount, fingerData) { $(this).text("You swiped " + direction ); } }); //Set some options later $("#test").swipe( {fingers:2} ); });
三、Methods(方法)
1、swipe:初始化
例子:$("#element").swipe({
//給id為element的容器觸摸滑動監聽事件
});
2、destroy:徹底銷毀swipe插件,必須重新初始化插件才能再次使用任何方法
例子:$("#element").swipe("destroy");
3、disable:禁止插件,使插件失去作用
返回值:現在與插件綁定的DOM元素
例子:$("#element").swipe("disable");
4、enable:重新啟用插件,恢復原有的配置
返回值:現在與插件綁定的DOM元素
例子:$("#element").swipe("enable");
5、option:設置或獲取屬性
例子:
$("#element").swipe("option", "threshold"); // 返回閾值
$("#element").swipe("option", "threshold", 100); // 設置閾值
$("#element").swipe("option", {threshold:100, fingers:3} ); // 設置多個屬性
$("#element").swipe({threshold:100, fingers:3} ); // 設置多個屬性 -"option"方法可省略
$("#element").swipe("option"); // 返回現有的options
四、Events事件
1、swipe:滑動事件
swipe:function(event, direction, distance, duration, fingerCount, fingerData) { $(this).text("You swiped " + direction ); }
參數:
2、swipeDown:向下滑動事件
swipeDown: function(event, direction, distance, duration, fingerCount, fingerData) {
}
參數同swipe事件
3、swipeUp:向上滑動事件
swipeUp: function(event, direction, distance, duration, fingerCount, fingerData) {
}
參數同swipe事件
4、swipeLeft:向左滑動事件
swipeLeft: function(event, direction, distance, duration, fingerCount, fingerData) {
}
參數同swipe事件
5、swipeRight:向右滑動事件
swipeLeft: function(event, direction, distance, duration, fingerCount, fingerData) {
}
參數同swipe事件
6、swipeStatus:滑動過程會持續觸發swipeStatus事件,不受閾值限制
swipeLeft: function(event, direction, distance, duration, fingerCount, fingerData, currentDirection) {
}
參數:
7、tap:當用戶簡單地點擊或者輕擊而不是滑動一個元素時tap/click事件將被觸發
tap:function(event,target){
console.log($(target).attr("class"));
}
參數:
event:原生事件對象
target:被點擊的元素(DOM對象)
8、doubleTap:當用戶連續兩次點擊或者輕擊而不是滑動一個元素時事件將被觸發
doubleTap:function(event,target){
console.log($(target).attr("class"));
}
參數:
event:原生事件對象
target:被點擊的元素(DOM對象)