jquery - Drawsvg - 多次回调调用的问题
问题描述
我必须尝试使用 jquery 插件 Draw SVG 为 svg 设置动画。https://github.com/lcdsantos/jquery-drawsvg
在我的 html 页面中,我有 2 个 SVG。我必须一个接一个地为每个 SVG 设置一次动画。
// svg 2 initialization
let svg2 = $('.outer_svg2').drawsvg({
duration: 800
})
// svg 1 initialization
let svg1 = $('.outer_svg').drawsvg({
duration: 2000,
callback: function(){
// Animating svg 2
svg2.drawsvg('animate');
}
});
// Animating svg 1
svg1.drawsvg('animate');
在完成第一个 svg 的动画后,我必须做第二个 svg 的动画。
但是,我的问题是,当我运行此代码时,第一个 SVG 动画运行正确,而第二个 SVG 动画重复运行。我只需要运行第一个第二个 SVG 动画一次。
以下是我找到的当前解决方案
setTimeout(function () {
svg2.drawsvg('animate'); // second animation call
}, 2000); // Duration of first animation
任何帮助将不胜感激!谢谢
解决方案
我也有这样的问题,我想在每个动画 svg 上进行无限循环,但回调只取 foreach 循环的最后一个元素。
我现在就是这样做的。(我在这里发布了它,我认为它可能对其他正在寻找与我相同问题的解决方案的人有帮助):)
var svgs = [];
$('.animated__svg').each((index,element) => {
var svg = $(element).drawsvg({
duration: 2000,
});
svgs.push(svg);
});
animateSvg();
function animateSvg(){
$.each(svgs,(index,element) => {
element.drawsvg('animate');
});
setTimeout(function(){ animateSvg();}, 2000);
}
推荐阅读
- angular - 使用静态网站回退问题在 Azure 上部署 Angular
- java - Java中的建模动作
- time-complexity - 阶乘的大 O 化简
- mysql - 使用 MySQL 8 我在调用存储过程时发现错误的输出结果
- c# - 具有 1 个冻结列的 WPF DataGrid - 水平滚动问题
- c# - HttpClient 的单个实例的连接池大小是多少,我在 Docs 的哪里可以看到它?
- java - 尝试更改变量的值时预期的变量
- javascript - 运行 ngFor 时组件内的类函数给出错误(不是函数)
- c# - 为什么在实例化一个类时使用不同的类型和构造函数?
- android - 更新gms库的android x迁移问题