2012-08-29 23 views
0

我想實現一個微動撥盤樣的行爲在滾動條/滑塊像這樣:的JavaScript拖動滑塊彈回中間位置上mouseUp事件

在開始

手柄位於的中間「滾動條/滑塊「區域。當你點擊手柄並向左或向右拖動它(同時保持點擊)時,會執行一些其他操作(頁面上另一個區域的更新) - 滑塊拖動到左端或右端的次數越多更快。一旦釋放鼠標按鈕,手柄應該回到滑塊區域的中間位置。

是否有任何基本上像這樣的可用於jquery/ui插件/組件/腳本,可以利用和擴展此行爲?

更新澄清:

我已經有像這樣http://jqueryui.com/demos/slider/

滑塊我想這個滑塊通過以下方式表現:

  • 滑塊的手柄應該開始了在您點擊手柄時,您可以將其拖動到左側或右側(只要您按住鼠標按鈕)
  • 滑塊中間/中心
  • 當您釋放鼠標按鈕時,滑塊的手柄應該跳回到起始位置(中心/中間)
  • 取決於手柄當前有多遠和哪一側,我想滾動其他內容(其他內容不是這個問題的一部分)

希望這有助於解釋我的意圖和問題更好一點。

+0

當我想着完全一樣的東西,我沒有找到那樣的東西。但是,真的,這是在漫長的頁面上瀏覽的唯一合理的方式。我還在尋找一種方法來下載用戶將要察覺的部件,同時刪除部件以節省內存。我得出的結論是,如果沒有從頭開始完全構建所有東西,就無法創建它。所有「標準」控制都基於不兼容的理念。我用了一個圖片作爲句柄,並且自己寫了整個邏輯。但最終我無法決定一個合理的API並放棄了這個項目。 – Robert

回答

0

你應該嘗試jQuery UI Slider

在事件選項卡,你可以看到你可以設置一個change處理程序。

然後,您可以獲取處理程序中滑塊的當前值,例如,

$(".selector").slider({ 
    change: function(event, ui) { 
     var current_value = ui.value; 
     //do something 
    } 
}); 
+0

是啊,閱讀jQuery UI滑塊的位置不是問題..使它像描述的行爲是我所追求的。 – Tom

+0

對不起,但你的問題是模糊地回答它完全。也許你應該首先將它分解成多個問題,並在你不知道如何繼續時提問。 – devsnd

1

如果在停止事件處理程序更改滑塊值回零,那麼你得到快速返回你所需要的,這裏是從變焦速度控制的代碼,我只是做:

$('#zoomslider').slider({ 
    slide: function(event,ui){ 
      setzoomspeed(ui.value) 
     }, 

    stop: function(event,ui) { 
     $('#zoomslider').slider("value",0); 
     setzoomspeed(0); 
    }, 
    min:-20, 
    max:20, 
    value:0 
});