2011-12-27 40 views
0

我有一個工作腳本,它允許我在-element內滾動,同時按住鼠標並將它向左或向右移動。jQuery:如何使用鼠標垂直滾動

我想添加垂直滾動。如果將鼠標向右或向左移動,我將向內滾動,如果將鼠標移動到頂部或底部,它將垂直滾動。

$(function() { 
$('#myDiv').mousedown(function (event) { 
    $(this) 
     .data('down', true) 
     .data('x', event.clientX) 
     .data('scrollLeft', this.scrollLeft); 
    return false; 
}).mouseup(function (event) { 
    $(this).data('down', false); 
}).mousemove(function (event) { 
    if ($(this).data('down') == true) { 
     this.scrollLeft = $(this).data('scrollLeft') + $(this).data('x') - event.clientX; 
    } 
}).css({ 
    'overflow': 'hidden', 
    'cursor': '-moz-grab' 
    }); 
}); 
$(window).mouseout(function (event) { 
    if ($('#myDiv').data('down')) { 
     try { 
      if (event.originalTarget.nodeName == 'BODY' || event.originalTarget.nodeName == 'HTML') { 
       $('#myDiv').data('down', false); 
      } 
     } catch (e) { } 
    } 
}); 

原始來源:http://jqueryfordesigners.com/fun-with-overflows/

我嘗試添加

.data('y', event.clientY) 
.data('scrollTop', this.scrollTop); 
... 
this.scrollTop = $(this).data('scrollTop') + $(this).data('y') - event.clientY; 

但它不是爲我工作。

回答