所以我有一个看起来像<div id="scroller">...</div>
的div,并且这个div内部是一堆内容,溢出被设置为隐藏。jQuery-带按钮的垂直div滚动不会连续滚动
我试图做一个平滑的滚动垂直div。我在div id='up'
顶部有一个按钮,底部有一个按钮id='down'
。
现在,当我点击向上或向下按钮div将滚动,但只有约1或2行(每次点击)。
有人可以请我解释一下如何绑定这个函数,让它在鼠标按下时不断滚动?此外,感觉更像是一个点击上/下而不是平滑滚动。
是否有不同的函数,我应该使用,而不是scrollTop()?
继承人FIDDLE
任何帮助,这将是巨大的! 在此先感谢。
$(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>
太棒了!这正是我的错误所在。非常感谢您的帮助。 – xxstevenxo 2012-08-02 17:53:42
我删除了1000,并且将ammount'scrollIt(5)'切换到scrollIt(1)并且获得了我正在寻找的速度。感谢您的更新。 – xxstevenxo 2012-08-02 17:56:44