Javascript 为什么.scrollLeft不能在超时功能中工作?
我有一段脚本,其中我设法使mousewheel事件水平移动页面,而不是垂直移动页面。但我也想给它增加一些动力。我创建了“after”函数,但body的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
.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);
});
});