2013-05-03 270 views
1

我试图使用移动应用的滑动效果。我已经测试过并努力改变页面。但它非常敏感。很多时候我只想滚动和他改变页面。滑动效果灵敏度

是否可以在触摸屏上修正此事件的敏感度?

这里是我的代码:

$(document).on('swipeleft', '[data-role="page"]', function(event){  
    if(event.handled !== true) // This will prevent event triggering more then once 
    {  
     var nextpage = $(this).next('[data-role="page"]'); 
     // swipe using id of next page if exists 
     if (nextpage.length > 0) { 
      $.mobile.changePage(nextpage, {transition: "slide", reverse: false}, true, true); 
     } 
     event.handled = true; 
    } 
    return false;   
}); 

$(document).on('swiperight', '[data-role="page"]', function(event){ 
    if(event.handled !== true) // This will prevent event triggering more then once 
    {  
     var prevpage = $(this).prev('[data-role="page"]'); 
     if (prevpage.length > 0) { 
      $.mobile.changePage(prevpage, {transition: "slide", reverse: true}, true, true); 
     } 
     event.handled = true; 
    } 
    return false;    
}); 

回答

5

在jQuery Mobile中,您需要为水平和垂直拖动距离horizontalDistanceThresholdverticalDistanceThreshold设置新值。

请注意,您需要将更改绑定到mobileinit事件,并且在加载jQuery js文件和加载jQuery-Mobile js之前应将代码放置到<head>中。

<script src="jquery.js"></script> 

<script> 
$(document).bind("mobileinit", function(){ 
$.event.special.swipe.horizontalDistanceThreshold = '100'; // default 30px 
$.event.special.swipe.verticalDistanceThreshold = '150'; // default 75px 
}); 
</script> 

<script src="jquery-mobile.js"></script> 

参考:Swipe event - jQuery Mobile

2

调整这样

$.swipe.defaults.threshold.x = '30'; //for horizontal swiping sensitivity 
$.swipe.defaults.threshold.y = '10'; //for vertical swiping sensitivity 

轻扫门槛只需添加这些代码来改变应用程序的挥动全局灵敏度和之后做你的常用代码把上面的代码

直接改变某个元素的灵敏度,你可以做这样的事情

$('[data-role="page"]').swipe({ threshold: {x: 30, y: 20}, 
swipeLeft: function() { alert('swiped left') }, 
swipeRight: function() { alert('swiped right') }}); 
+0

确定..你能告诉我在我行有插入? thx为 – user2232273 2013-05-03 17:39:56

+0

不能刷卡.. – user2232273 2013-05-03 17:54:46

+0

然后根据需要增加阈值 – 2013-05-03 17:58:16