2012-05-23 53 views
0

我有一個基本的滑塊和一個基於滑塊偏移的溢出div。爲此,我使用這個;JQuery滑塊在拖動時滾動div嗎?

slide: function(e, ui) { 
      $("#myDiv").animate({left: ui.value * -1}, 500); 
     }, 
     stop: function(e, ui) { 
      $("#myDiv").animate({left: ui.value * -1}, 500); 
     }, 
     change: function(e, ui) { 
      $("#myDiv").css({left: ui.value * -1}); 
     } 

如果我在滑塊上點擊某處或使用鼠標滾輪/箭頭鍵,此功能將非常有用。但是,如果我將滑塊左右拖動並放在某處,則div始終在滾動事物,來回跳動。一旦我釋放鼠標,它並不真正'快速'。

有沒有一些更乾淨的方式來做到這一點,以便它實際上跟蹤?

+0

分離的「幻燈片」事件代碼...我認爲「停止」和「改變」會做動畫完美 – Dasarp

+0

幾乎工作,沒有更多的異常行爲,但該div不再滾動,直到我釋放滑​​塊。所以當我拖動它時,div是靜態的。當我跌落時,它就迎頭趕上。我希望這更像一個實際的滾動條,並滑動div,因爲它移動.. – XeroxDucati

+0

很簡單的方法來做到這一點是刪除動畫/延遲(500)在'幻燈片'事件...只是重新安排div到適當的位置......它會看起來像動畫 – Dasarp

回答

0

只是修改代碼

slide: function(e, ui) { 
     // here replace the delay/remove animation and place div in exact position 
     $("#myDiv").animate({left: ui.value * -1}, 0); 
    }, 
    stop: function(e, ui) { 
     $("#myDiv").animate({left: ui.value * -1}, 500); 
    }, 
    change: function(e, ui) { 
     $("#myDiv").css({left: ui.value * -1}); 
    } 
+0

這是我試過的 - 如果你設置滑塊的動畫屬性爲true,當它在10%時點擊80%,滑塊動畫,但div跳轉。如果我將其更改爲動畫,幻燈片調用時爲500,奇怪的行爲將返回.. – XeroxDucati