javascript - 为什么 .scrollLeft 在超时函数中不起作用?

标签 javascript jquery

我有一段脚本,其中我设法使鼠标滚轮事件水平而不是垂直移动页面。但我也想为其增添一些动力。我创建了“after”函数,但 body 的 .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 秒后 body 应该以 (delta * 1000) 速度移动,但由于某种原因却没有。

最佳答案

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

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);
});
});

关于javascript - 为什么 .scrollLeft 在超时函数中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42459512/

相关文章:

javascript - 创建具有 async 属性的脚本标签

javascript - React Recharts——从不同对象获取数据

javascript - 复制 2 个可观察数组然后进行比较

javascript - 应用于 html5 数字字段的 javascript 的错误行为

JavaScript 和 Html 代码来运行所有类型的视频并获得状态

javascript - Youtube 视频显示在 JS 灯箱顶部

Javascript - 语法错误 : Invalid or unexpected token - while creating object - Invisible character

javascript - Redis命令列出所有订阅redis channel 的订阅者

asp.net - 我应该为 ASP.net 创建一个 JQuery 服务器控件以便在我的应用程序中最好地使用它吗?

jquery - 如何在 Rails 中使用较短的键从 ajax 响应中获取预期数据?