2015-10-16 78 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