Цикл html2canvas
У меня возникли некоторые проблемы при попытке реализовать скрипт html2canvas в цикле for.
Я пишу функцию 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
часть кода работает.
Если мое объяснение неясно, я скоро подготовлю несколько подходящих примеров.