平滑滚动没有锚只有jQuery

时间:2013-09-23 13:32:28

标签: javascript jquery smooth-scrolling

我有一个jQuery脚本,允许我水平滚动,但它是一个生锈的旧滚动,我想让它平滑而不改变整个代码。

我想用this.scrollLeft -= (delta * 90);更改.animate,但我是jQuery的初学者。

到目前为止,这是我的代码:

$(document).ready(function() {

    $('html, body, eall, *').mousewheel(function(e, delta) {
        this.scrollLeft -= (delta * 90);
        e.preventDefault();
    });
});

2 个答案:

答案 0 :(得分:2)

您可以这样做:

$('html, body').animate({
    scrollLeft : 0 // or whatever value you need here
}, 750);

答案 1 :(得分:1)

首先只选择必须调用您的事件回调的元素而不是$('html, body, eall, *'),就像您的问题所显示的那样。

例如,将.horizontalScroll类添加到所需元素,然后$('.horizontalScroll

然后你可以做这样的事情来制作更流畅的卷轴:

var scroll = $(this).scrollLeft() - (delta * 90);
$(this).stop(true).animate({
      scrollLeft: scroll
}, 200);
e.preventDefault();

See this working demo(在div#scroll内滚动,调整(delta * 90)animate持续时间参数200以获得所需的平滑度。