我有一个按钮,用于在单击鼠标按钮时向下滚动div。我认为这应该可行,但它只会滚动每次点击一次px,而不是滚动直到鼠标向上事件。
代码:
var howfar = 0;
$('#scrolldown').mousedown(function() {
howfar ++;
$('#scrollbox').scrollTop(howfar);
});
答案 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
之类的内容