2011-05-27 65 views
5

我使用了这样好的插件来捕捉抹在移动设备上活动的一些湿巾:http://www.netcu.de/jquery-touchwipe-iphone-ipad-library默认为擦拭使用jQuery touchwipe

我使用该页面的源代码即可获得我的图片库作为循环它应该是。但是,我的图库是整个屏幕的宽度。不幸的是,touchwipe似乎阻止了默认的向上和向下滚动页面上下滚动。有没有办法让它使用默认行为,除非指定了其他行为?

$(document).ready(function() { 
    $('#imagegallery').cycle({ 
     timeout: 0, 
     fx: 'scrollHorz', 
     next: '#next', 
     prev: '#prev' 
    }); 

    $("#imagegallery").touchwipe({ 
     wipeLeft: function() { 
      $("#imagegallery").cycle("next"); 
     }, 
     wipeRight: function() { 
      $("#imagegallery").cycle("prev"); 
     } 
    }); 
}); 

我也打开其他替代方案来实现这种效果(其他插件,其他方法)。谢谢!

+0

看看touchWipe的代码,我看到有'{preventDefaultEvents:true}'选项。但是,我只想防止使用wipeLeft和wipeRight的默认值,而不是用于wipeUp和wipeDown。也许更有能力的人可能会建议如何修改插件,使其具有多个选项'{preventDefaultUp:false,preventDefaultLeft:true等}' – thugsb 2011-05-27 18:50:47

+0

这可能会有所帮助:将插件选项更改为'preventDefaultEvents:[true,true, true,true]'(top,right,b,l)并删除该行以防止默认。然后,在'config.wipeLeft();'的上方添加'if(config.preventDefaultEvents [3]){e.preventDefault();}行,对于不同的wipeDirs类似。这实际上并不奏效,但它可能有助于解决方案。 – thugsb 2011-06-02 15:58:27

+0

谢谢你。只是看你的代码,你只用它与循环插件,对吧?想知道是否有人能够使用该插件轻扫整个页面内容? – Desmond 2012-07-11 00:06:17

回答

12

有了这个小补丁,jquery.touchwipe库:

if(Math.abs(dx) >= config.min_move_x) { 
    cancelTouch(); 
    if(dx > 0) { 
-  config.wipeLeft(); 
+  config.wipeLeft(e); 
    } 
    else { 
-  config.wipeRight(); 
+  config.wipeRight(e); 
    } 
    } 
    else if(Math.abs(dy) >= config.min_move_y) { 
    cancelTouch(); 
    if(dy > 0) { 
-  config.wipeDown(); 
+  config.wipeDown(e); 
    } 
    else { 
-  config.wipeUp(); 
+  config.wipeUp(e); 
    } 
    } 

你就可以改变你的代码来调用选择性e.preventDefault():

$(document).ready(function() { 
    $('#imagegallery').cycle({ 
     timeout: 0, 
     fx: 'scrollHorz', 
     next: '#next', 
     prev: '#prev' 
    }); 

    $("#imagegallery").touchwipe({ 
     wipeLeft: function(e) { 
      e.preventDefault(); 
      $("#imagegallery").cycle("next"); 
     }, 
     wipeRight: function(e) { 
      e.preventDefault(); 
      $("#imagegallery").cycle("prev"); 
     }, 
     preventDefaultEvents: false 
    }); 
}); 

(我已经提交了补丁插件作者。)