为什么.scrollLeft无法在超时功能中工作?

时间:2017-02-25 17:50:02

标签: javascript jquery

我有这段脚本,我设法让mousewheel事件水平移动页面而不是垂直移动。但我也希望为它增添一些动力。我创建了“after”函数,但正文的.scrollLeft将无法运行。

var rate = 150;

$(function () {
    $("body").mousewheel(function (event, delta) {
        function after() {
            $("body").scrollLeft -= (delta * 1000);
            console.log(delta);
            event.preventDefault();
        };

        this.scrollLeft -= (delta * rate);
        event.preventDefault();

        setTimeout(function () {
            after(delta, event)
        }, 3000);
    });
});

我看到它的方式,3秒后身体应该以{{1​​}}的速度移动,但不是出于某种原因。

1 个答案:

答案 0 :(得分:0)

我希望这会起作用(不确定)

var rate = 150;

$(function () {
$("body").mousewheel(function (event, delta) {
    function after(event, delta) {
        $("body").scrollLeft -= (delta * 1000);
        console.log(delta);
        event.preventDefault();
    };

    this.scrollLeft -= (delta * rate);
    event.preventDefault();

    setTimeout(function () {
        after(event, delta)
    }.bind(null,event, delta), 3000);
});
});