【发布时间】:2019-06-21 16:21:28
【问题描述】:
我正在使用最新版本的 jQuery 和 jQuery 颜色。我正在尝试使用动画来无限地改变我的容器的颜色。但是当我运行以下代码时,我收到错误:“未捕获 RangeError:超出最大调用堆栈大小”。动画循环工作正常,但它阻止了我的 jQuery 代码的其余部分执行。我不知道堆栈溢出是从哪里来的..!
let $container = $("#container");
let colours = ["56, 68, 97", "97, 56, 80", "42, 74, 53", "104, 66, 44"];
(function colourAnimation() {
colours.forEach((colour) => {
$container.animate({"color": "rgb(" + colour + ")",
"background-color": "rgba(" + colour + ", 0.2)",
"border-color": "rgba(" + colour + ", 0.7)",
}, 2500);
});
$container.animate({}, 0, "", colourAnimation);
})()
【问题讨论】:
-
正如 robut 所说,您在函数完成后立即调用它。因此,该函数基本上被无限调用。你的意思是把最后一行放在函数之外吗?
-
我需要无限调用函数以使动画无限循环。除非有其他方法可以在没有堆栈错误的情况下实现此效果。
-
您可以使用
setInterval(colourAnimation, time);,时间应该以毫秒为单位。这里有一个解释 - w3schools.com/jsref/met_win_setinterval.asp
标签: javascript jquery jquery-color