我有这个自定义<select>
。
在.select_list
内,我有ul
height:300px;
和overflow:hidden;
当我将按钮悬停在.select_list
内时,<ul>
向上或向下滚动。
我的问题是,当我将鼠标悬停在例如“向下滚动”按钮时,即使scrollTop在scrollHeight上方,ul.scrollTop()仍然会增加。
之后,如果我滚动顶部,我必须等待几个毫秒再次向上滚动。
当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();
});
答案 0 :(得分:1)
在doScroll函数中使用scrollTop的当前值。 以下是修改后的功能。
function doScroll(v) {
interval = setInterval(function() {
$list.scrollTop($list.scrollTop() + v);
}, 30);
}