2014-05-21 71 views
3

我在我的頁面上有一個idangerous swiper,它成功地模擬了幻燈片和伴隨滾動條上的觸摸事件(允許鼠標單擊和移動將幻燈片向左或向右滑動)。可能禁用滑動觸摸模擬而不是滾動條(idangerous swiper)?

這很好,但我現在在swiper中的幻燈片上稱爲可拖動,這意味着我需要停止這種觸摸模擬(拖動幻燈片並同時移動它們導致混淆) - 但僅限於幻燈片,而不是滾動條(我仍然需要滾動條的功能,因爲它隨着鼠標點擊和移動)。

我已經試過

據我可以禁用觸摸仿真API:

var swiper = new Swiper('.swiper', { 
    slidesPerView: 3, 
    simulateTouch: false, 
    scrollbar: { 
     container: '.swiper-scrollbar', 
     hide: false, 
     draggable: true, 
     snapOnRelease: true 
    } 
}); 

可正常工作,但對滾動和滑動兩種,這也是白搭。

我也試着從數刷卡API公開事件的返回false:

var swiper = new Swiper('.swiper', { slidesPerView: 3, onTouchStart: function() { return false; }, scrollbar: { container: '.swiper-scrollbar', hide: false, draggable: true, snapOnRelease: true } });

這不會有任何效果可言。

回答

6

這裏是組隊,探索-3.3.1

simulateTouch:false 
+0

解決方案,此選項還沒有記錄。謝謝!我正在使用它來禁用非觸摸設備上的基於滑動的導航。 –

+0

給你upvote和答案投票。我相信我在當時是正確的,幾年後,我認爲你的看法更相關。 –

1

我發現了一種方式,現在,我很滿意。

在idangerous刷卡源(idangerous.swiper-2.1.js)我返回從onTouchStart功能(線1120)假,所以我的代碼現在如下所示:

function onTouchStart(event) { 
    if (params.preventLinks) _this.allowLinks = true; 
    //Exit if slider is already was touched 

    return false; 

    if (_this.isTouched || params.onlyExternal) { 
     return false; 
    } 

這是非侵入性的,以滾動條原型的工作方式也是如此,所以滾動條的觸摸事件仍然保持完好。

相關問題