所以我有一个看起来像的 div,<div id="scroller">...</div>
在这个 div 里面是一堆内容,溢出设置为隐藏。
我试图制作一个平滑滚动的垂直 div。我在 div 顶部有id='up'
一个按钮,在底部有一个按钮id='down'
。
现在,当我单击向上或向下按钮时,div 会滚动,但只有大约 1 或 2 行(每次单击)。
有人可以向我解释一下我将如何绑定此功能,以便在按下鼠标时不断滚动?此外,感觉更像是向上/向下单击而不是平滑滚动。
我应该使用不同的函数而不是 scrollTop() 吗?
这是一个小提琴
对此的任何帮助都会很棒!提前致谢。
$(document).ready(function() {
var timeoutId = 0;
function scrollIt(amount){
$('#scroller').scrollTop($('#scroller').scrollTop()+amount);
}
$('#down').mousedown(function() {
timeoutId = setTimeout(scrollIt(5), 1000);
}).bind('mouseleave', function() {
clearTimeout(timeoutId);
});
$('#up').mousedown(function() {
timeoutId = setTimeout(scrollIt(-5), 1000);
}).bind('mouseleave', function() {
clearTimeout(timeoutId);
});
});
工作解决方案
$(document).ready(function() {
var timeoutId = 0;
function scrollIt(amount){
$('#scroller').scrollTop($('#scroller').scrollTop()+amount);
}
$('#down').mousedown(function() {
timeoutId = setInterval(function(){scrollIt(5)}, 20);
}).bind('mouseup mouseleave', function() {
clearInterval(timeoutId);
});
$('#up').mousedown(function() {
timeoutId = setInterval(function(){scrollIt(-5)}, 20);
}).bind('mouseup mouseleave', function() {
clearInterval(timeoutId);
});
});
HTML
<div class="scrollup" id="up"> </div>
<div id="scroller" class="scroller buttongroup">
blah blah
content blah
blah blah
content blah
</div>
<div class="scrolldown" id="down"> </div>