2015-10-16 68 views
1

我有這個自定義<select>停止滾動後scrollTop> = scrollHeight

.select_list裏面我有一個ulheight:300px;overflow:hidden; 當我懸停.select_list<ul>內的按鈕或下向上滾動。

我的問題是,當我懸停,例如'向下滾動'按鈕,ul.scrollTop()它仍然增加,即使scrollTop它通過scrollHeight。

之後,如果我滾動頂部,我必須等待幾個毫秒再次滾動。

有人可以解釋或幫助停止滾動時,ul滾動到最大?

這裏是JSbin:

http://jsbin.com/wupavameze/edit?css,js,output

$up.on('mouseover', function() { 
      doScroll(-offset); 
     }) 
     .on('mouseout', function() { 
      stopScroll(); 
     }); 


    $down.on('mouseover', function() { 
      doScroll(offset); 
     }) 
     .on('mouseout', function() { 
      stopScroll(); 
     }); 

回答

1

在doScroll功能使用scrollTop的的當前值。 以下是修改後的功能。

function doScroll(v) { 
    interval = setInterval(function() { 
     $list.scrollTop($list.scrollTop() + v); 
    }, 30); 
} 
+0

謝謝你! – Hiero