我问Phonegap 应用程序是否能够识别Javascript 中的swipeLeft 和SwipeRight 相关事件。
5 回答
与普通移动网站相比,Phonegap 不再为您提供触摸事件。即它只是包装一个 UIWebView(在 iOS 上)或其他平台上的任何等价物。
移动浏览器中的触摸事件包括touchstart
、touchend
、touchmove
等。
没有任何花哨的滑动事件、双击事件或类似移动浏览器原生实现的事件。
但是您可以通过将 javascript 与 stock touchstart
、touchend
events 等结合使用来模拟那些更复杂的事件。
幸运的是,您不需要自己编写这些事件,因为几乎每个移动框架都为您完成了这些。其他人提到了一些处理触摸事件的库。
我自己,我倾向于使用 jQuery Mobileswipeleft
和swiperight
事件,以及其他。
http://jquerymobile.com/demos/1.2.0/docs/api/events.html
如果您不想,您甚至不必使用完整的 jQuery Mobile 框架。如果需要,您可以只包含他们的触摸事件处理程序。
我们使用quo.js。它是处理多点触控事件等的轻量级框架。
使用它在 ios 和 android 中使用 phonegap。
$("#test").swipe( {
click:function(event, target) {
log("click from callback");
},
swipe:function(event, direction, distance, duration, fingerCount) {
log("swipe from callback");
},
swipeLeft:function(event, distance, duration, fingerCount) {
log("swipeLeft from callback");
},
swipeRight:function(event, distance, duration, fingerCount) {
log("swipeRight from callback");
},
swipeUp:function(event, distance, duration, fingerCount) {
log("swipeUp from callback");
},
swipeDown:function(event, distance, duration, fingerCount) {
log("swipeDown from callback");
},
swipeStatus:function(event, phase, direction, distance, duration, fingers) {
log("swipeStatus from callback");
},
pinchIn:function(event, direction, distance, duration, fingerCount, pinchZoom) {
log("pinchIn from callback");
},
pinchOut:function(event, direction, distance, duration, fingerCount, pinchZoom) {
log("pinchOut from callback");
},
pinchStatus:function(event, phase, direction, distance , duration , fingerCount, pinchZoom) {
log("pinchStatus from callback");
},
fingers:$.fn.swipe.fingers.ALL
});
Zepto 为 swipeLeft 和 swipeRight 以及许多其他的触摸事件:http: //zeptojs.com/#Touch%20events
优秀的 jquery 插件TouchSwipe-Jquery-Plugin用于滑动功能