如何强制(默认)滚动条随缓动移动(特别是在chrome中)

时间:2014-03-07 11:38:19

标签: javascript jquery html css scrollbar

我想要实现的是,我想强制DEFAULT滚动条上下移动一个缓动动画。像this plugin

这样的东西

或者非常接近新firefox的Scrollbar的东西(它可以轻松滚动,而不是突然像chrome或windows默认的那样)

我尝试了很多东西,但没有一个能够完美。例如,我希望从this tutorial激发灵感,但只要我将overflow属性更改为auto,给容器一个滚动条),一切都会疯狂!(你可以尝试自己看看我的意思)。我甚至尝试了下面的代码,但话又说回来,它有自己的问题:

HTML:

<div class="container">
        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>
        <div class="test"></div>
</div>

CSS:

.container {
    width: 300px;
    height: 700px;
    background-color: red;
    overflow: scroll;
}

.test {
    width: 200px;
    height: 300px;
    background-color: blue;
    margin: 5px 0 5px 0;
    border-radius: 10px;
}

THE JAVASCRIPT:

$(document).ready(function () {
        $('.container').mousewheel(function (e) {
            var cp = $(this).scrollTop();
            var deltaY = e.deltaY;
            var deltaFactor = e.deltaFactor;
            var sd = cp + (deltaFactor * (-deltaY));
            $(this).stop().animate({ scrollTop: sd });
        });
});

正如我所说,我不想使用外部插件(如niceScroll或costume-scrollbar-pugin)。并且要强调,我希望滚动条的行为类似于firefox的滚动条

1 个答案:

答案 0 :(得分:1)

您是否考虑过类似this?的内容(不确定这是否正是您所寻找的......)

Here是正在使用的脚本的演示

修改

已删除,因为它已不再使用且充满了错误