2011-06-20 59 views
3

我做了搜索,但有一些類似的帖子,但我似乎無法得到它的工作。我知道它是一個陳詞濫調,但我對JQuery和JQuery UI頗爲陌生,因爲我的核心技能是PHP,因此非常感謝任何幫助。以下是我用於JQuery垂直滑塊的代碼。綁定鼠標滾輪到JQuery UI滑塊

$("#VerticalScrollBar").slider({  
    orientation: "vertical", 
    change: VerticalHandleChange, 
    slide: VerticalHandleSlide, 
    min: -100, 
    max: 0 
}); 

和功能

function VerticalHandleChange(e, ui) { 
var maxScroll = $(".VerticalScroll").attr("scrollHeight") - $(".VerticalScroll").height(); 
$(".VerticalScroll").animate({ 
    scrollTop: -ui.value * (maxScroll/100) 
}, 1000); 

function VerticalHandleSlide(e, ui) { 
var maxScroll = $(".VerticalScroll").attr("scrollHeight") - $(".VerticalScroll").height(); 
$(".VerticalScroll").attr({ 
    scrollTop: -ui.value * (maxScroll/100) 
}); 

垂直滑塊工作正常,但現在我需要集成鼠標滾輪支持。我下載了Brandon Aaron的鼠標滾輪插件(jquery-mousewheel ver。3.0.4),但我不知道如何將它與我的代碼一起使用。任何人都可以幫助我呢?再次感謝。

回答

5

做一些測試,我想出了這個解決方案後:

$('#sliderid').on('mousewheel DOMMouseScroll', function(e) { 
    var o = e.originalEvent; 
    var delta = o && (o.wheelDelta || (o.detail && -o.detail)); 

    if (delta) { 
     e.preventDefault(); 

     var step = $(this).slider("option", "step"); 
      step *= delta < 0 ? 1 : -1; 
     $(this).slider("value", $(this).slider("value") + step); 
    } 
}); 

似乎在Chrome /火狐/歌劇 正常工作(使用jQuery 1.10.1)

+0

謝謝!它有效,但對我來說更方便\t 逆向滾動 step * = delta <0? -1:1; –