Javascript 设置间隔问题
我对Javascript 设置间隔问题,javascript,Javascript,我对setInterval有问题。我正在尝试制作两个按钮,以增加或减少带有幻灯片效果的scrollLeft属性,但它不起作用 下面是我的代码: var x; var scrollDiv = document.getElementById("army_selection"); var scrollLeft = document.getElementById("scroll_left"); scrollLeft.addEventListener("mouseover", dec_scroll, f
setInterval
有问题。我正在尝试制作两个按钮,以增加或减少带有幻灯片效果的scrollLeft
属性,但它不起作用
下面是我的代码:
var x;
var scrollDiv = document.getElementById("army_selection");
var scrollLeft = document.getElementById("scroll_left");
scrollLeft.addEventListener("mouseover", dec_scroll, false);
scrollLeft.addEventListener("mouseleave", function(){clearInterval(x);}, false);
var scrollRight = document.getElementById("scroll_right");
scrollRight.addEventListener("mouseover", inc_scroll, false);
scrollRight.addEventListener("mouseleave", function(){clearInterval(x);}, false);
/* Functions */
function inc_scroll() {
x = setInterval(scrollDiv.scrollLeft += 5, 1);
}
function dec_scroll() {
x = setInterval(scrollDiv.scrollLeft -= 5, 1);
}
基本上,现在在滚动函数中执行一次
scrollDiv.scrollLeft+=5
,返回值传递给setInterval
的第一个参数。因为它不是一个函数,所以不会被再次调用
将函数作为其第一个参数。由于scrollDiv.scrollLeft+=5
不是函数,因此需要将其包装到函数中:
function inc_scroll() {
x = setInterval(() => scrollDiv.scrollLeft += 5, 1);
}
function dec_scroll() {
x = setInterval(() => scrollDiv.scrollLeft -= 5, 1);
}
或者,如果您更喜欢旧的函数格式:
function inc_scroll() {
x = setInterval(function() { scrollDiv.scrollLeft += 5 }, 1);
}
function dec_scroll() {
x = setInterval(function() { scrollDiv.scrollLeft -= 5 }, 1);
}
很 完美!我没有注意到我没有把它放在函数中,非常感谢!