我在尝试在 for 循环中实现 html2canvas 脚本时遇到了一些麻烦。
我正在编写一个 Javascript 函数,它使用数据数组来修改一组元素的样式,将容器 div 捕获为画布,将其转换为图像,将其附加到文档正文,然后继续下一个数组的索引。
我遇到麻烦的部分是在循环的最后:
html2canvas(document.getElementById("background"), {
onrendered: function(canvas) {
var imgdata = canvas.toDataURL("image/png");
var obj = document.createElement("img");
obj.src=imgdata;
document.body.appendChild(obj);
}
});
通过逐步浏览脚本,我发现它没有等待画布被渲染,然后继续进行 for 循环的下一次迭代,这导致我试图捕获的元素发生变化,但每个被渲染的图像看起来完全一样(作为数组中的最终索引)。
有没有办法在画布渲染时延迟脚本一秒钟?我尝试过使用setTimeout()
,但似乎找不到任何其他延迟脚本的方法,我不熟悉这onrendered
部分代码的工作原理。
如果我的解释不清楚,我会尽快准备一些合适的例子。