1

我有一个 jQuery 脚本,它允许我水平滚动,但它是一个生锈的旧滚动,我希望在不更改整个代码的情况下使其平滑。

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

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

$(document).ready(function() {

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

2 回答 2

2

你可以这样做:

$('html, body').animate({
    scrollLeft : 0 // or whatever value you need here
}, 750);
于 2013-09-23T13:40:23.003 回答
1

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

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

然后你可以做这样的事情来制作更平滑的滚动:

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

请参阅此工作演示(在内部滚动div#scroll、调整(delta * 90)animate持续时间参数200以获得所需的平滑度。

于 2013-09-23T14:22:00.677 回答