2011-05-17 79 views
2

我一直在解剖螢火蟲事件和ui對象,但它似乎沒有任何我可以使用的東西。我錯過了什麼嗎?我想我可以跟蹤價值的變化,但似乎它會是一個混亂。jQuery滑塊「滑動」事件:如何確定用戶的滑動方向?

$(".selector").slider({ 
    slide: function(event, ui){ 
     // I need to tell if the slide is left-to-right or right-to-left here. 
    } 
}); 

謝謝! Jason

+0

我不知道,但爲什麼你需要知道?這有點違背滑塊的工作原理 – Ryan 2011-05-17 19:35:04

+0

如果y你試圖得到滑塊移動的方向,你將不得不跟蹤最後的位置並做一個差異。 – 2011-05-17 19:46:10

回答

1

如果您想要獲取方向(數值減少或增加),請使用startslide事件。當啓動事件被觸發時,將初始值存儲在一個變量中。之後,將這個存儲值與滑動事件創建的值進行比較。

只是結合不同的事件。

編輯之前:

使用documented吸氣

var orientation = $(".selector").slider("option", "orientation"); 

該選項決定 滑塊是否有在左邊的分, 最大的右側或分鐘,底部爲 ,頂部爲最大值。可能的 值:'水平','垂直'。

+0

這隻返回'水平'。我正在尋找一些能夠根據客戶端移動的方向返回'ltr'或'rtl'的東西。 – programmer 2011-05-17 19:46:03

+0

這將返回滑塊所在的方向,而不是用戶正在向哪個方向移動滑塊,即向左或向右。 – 2014-01-31 11:29:24

3

對於大家想知道如何解決這個問題,我只是找到了一個解決方案:

的含幻燈片兩個全球增值經銷商與開始啓動。我的滑塊總是從0開始,從左到右,所以第一個nexSlide wikll是1.現在你可以簡單地比較兩個滑動方向。這種方法效率最高,因爲它可以在不停止幻燈片的情況下檢測方向變化。

var currentSlide = 0; var nextSlide = 1; 

    jQuery("#slider").bind("slide", function(event, ui) { 
     currentSlide = jQuery('#slider').slider('value'); 
     nextSlide = ui.value; 
    }); 
0

簡單的解決方案是簡單地利用負的範圍(而不是[1 - 10]使用[-10,-1]:

 $("#slider-roomsrange").slider({ 
     range: true, 
     min: -10, 
     max: -1, 
     step: -.5, 
     values: [-3, -1], 
     slide: function (event, ui) { 
      $("#roomsfrom").val((ui.values[0]*-1)); 
      $("#roomsto").val((ui.values[1]*-1)); 
      // $("#rooms").val(ui.values[1] + " - " + ui.values[0]); 
     } 
    }); 

我反轉值是通過使用正* -1和作品GRET。

*唯一的問題是我目前所面對的是,步長爲1,而不是0.5如我所料。