Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么.scrollLeft不能在超时功能中工作?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么.scrollLeft不能在超时功能中工作?

Javascript 为什么.scrollLeft不能在超时功能中工作?,javascript,jquery,Javascript,Jquery,我有一段脚本,其中我设法使mousewheel事件水平移动页面,而不是垂直移动页面。但我也想给它增加一些动力。我创建了“after”函数,但body的.scrollLeft无法运行 var rate = 150; $(function () { $("body").mousewheel(function (event, delta) { function after() { $("body").scrollLeft -= (delta * 100

我有一段脚本,其中我设法使mousewheel事件水平移动页面,而不是垂直移动页面。但我也想给它增加一些动力。我创建了“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秒钟后,身体应该以
(delta*1000)
的速度移动,但由于某些原因,身体不会移动。

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


您的'after'函数不接受任何参数?它接受,after函数中的
console.log
专门用于查看它是否获得参数。脚本的第一次迭代在这个意义上是不正确的(因此进行了编辑),遗憾的是,它没有。第二个函数中的
console.log
仍然像以前一样显示增量,但没有效果。我排除了第二个函数中不存在的增量,因此我没有任何问题:(
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);
});
});