所以我有一個看起來像<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