2010-03-22 52 views
1

我有一個可滾動的div標記(溢出)。現在我想用鼠標點擊並按住並移動以上下導航(如Adobe Reader中的手形光標功能)。使用鼠標單擊按鈕導航的JavaScript?

是否有任何js腳本來實現這一目標? 具體而言,我使用jQuery,任何jQuery插件來實現這一目標?

回答

3

不知道有任何插件,但是這不應該是太難:

$(function() { 
    $('#foo').mousedown(function(e) { 
     var start = e.pageY; 
     var startPos = $(this).scrollTop(); 
     var el = $(this); 

     $().mousemove(function(e) { 
      var offset = start - e.pageY; 
      el.scrollTop(startPos + offset); 
      return false; 
     }); 

     $().one('mouseup', function(e) { 
      $().unbind(); 
     }); 

     // Only if you want to prevent text selection 
     return false; 
    }); 
}); 

工作示例可以在這裏找到:

http://www.ulmanen.fi/stuff/mousescroll.php

+0

大。正是我在找什麼。非常感謝! – huy 2010-03-22 23:23:25

+0

現在嘗試在#foo(更大的z-index)之上放置另一個div盒時會出現另一個問題。該代碼也適用於該div框。你知道如何刪除它嗎? – huy 2010-03-23 09:42:32

+0

您必須停止嵌套元素的事件傳播 - 當您單擊嵌套元素時,mousedown事件會傳播回'#foo'元素。解決這個問題的簡單方法是使用'$('#foo *')。click(function(){return false;});'。這段代碼會停止'#foo'的所有子節點的事件傳播。這可能不是所有情況下都需要的,但應該適合你。 – 2010-03-23 11:23:09