在scrollTop> = scrollHeight之后停止滚动

时间:2015-10-16 10:58:54

标签: javascript jquery css

我有这个自定义<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();
        });

1 个答案:

答案 0 :(得分:1)

在doScroll函数中使用scrollTop的当前值。 以下是修改后的功能。

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