Mousedown滚动功能无法正常工作

时间:2012-02-03 19:45:18

标签: jquery scroll

我有一个按钮,用于在单击鼠标按钮时向下滚动div。我认为这应该可行,但它只会滚动每次点击一次px,而不是滚动直到鼠标向上事件。

代码:

 var howfar = 0;
    $('#scrolldown').mousedown(function() {

        howfar ++;
        $('#scrollbox').scrollTop(howfar);

    });

3 个答案:

答案 0 :(得分:3)

我认为这就是你要找的东西:

var shouldScrool = false
    takeAction,
    count = 0;

takeAction = function() {
   count = 0;
   while(takeAction) {
        count++;
        $('#scrollbox').scrollTop(count);
   }
};
$('#scrolldown').mousedown(function() {
    takeAction = true;
    takeAction();
});

$('#scrolldown').mouseup(function() {
    takeAction = false;
});

答案 1 :(得分:1)

持续保持mousedown并不意味着它会连续发射该事件,它只会发射一次。您可以使用mousedown触发一次setInterval事件后开始增加scrollTop,然后清除mouseup事件的间隔。

尝试这样的事情。

var howfar = 0;
var timer;
$('#scrolldown').mousedown(function() {
    var innerHeight = $('#scrollbox').css('height', 'auto').height();
    $('#scrollbox').css('height', '100px');
    timer = setInterval(function(){
        if(howfar < innerHeight){
            $('#scrollbox').scrollTop(howfar++);
        }
        else{//Clear the interval
            clearInterval(timer);
        }
    }, 10);
});
$('#scrolldown').mouseup(function() {
     clearInterval(timer);
});

<强> Demo

答案 2 :(得分:0)

您可以尝试this

之类的内容