2010-03-22 51 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