2011-05-27 76 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 
    }); 
}); 

(我已經提交了補丁插件作者。)