javascript - jQuery无限动画导致调用堆栈错误
问题描述
我正在使用最新版本的 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);
})()
解决方案
您function colourAnimation()
以调用一个方法结束,该方法animate
的第四个参数已被传递colourAnimation
。
文档@ https://api.jquery.com/animate/表明第四个参数是
动画完成后调用的函数,每个匹配元素调用一次。
当然代码会无限递归?
推荐阅读
- karate - 在调用我的函数之前,我正在努力让空手道从我的 csv 文件中读取我的数据
- nuxt.js - 如何为同构通用应用程序设置 Nuxt?
- algorithm - 什么是对错误比较具有鲁棒性的排序算法?
- python - html2pdf with python:如何在每个页面上设置页脚和页眉并控制页面剪切
- python - 多个标题,无法清理
- excel - 如果在 perl 中解析大型 xlsx 文件,则处理异常
- python - 寻找arkose fun验证码回调
- python - 如何从我的本地计算机(client.py)发送一个简单的 UDP 消息到远程服务器 pythonanywhere(server.py)
- javascript - 如何从js文件访问json文件数据
- javascript - 正则表达式:用 Javascript/Node 替换 Markdown 字符串中的相对图像 url