В использовании html2canvas у меня есть stack
объектов DOM (относительные позиционированные div, которые содержат разные вещи), что я хочу создать отдельные миниатюры для. Итак, если есть десять div, я создам десять эскизов.html2canvas offscreen
Некоторые из этих объектов будут вне экрана - каждый из этих разделов находится в одном, охватывающем div, называемом «mainDiv». Я перебираю divs внутри mainDiv и выполняю html2canvas по каждому из них по отдельности.
Для тех, кто на экране, это работает нормально. Те, что вне экрана, не делают - они возвращаются в прошлое. Я создал обходной путь, который прокручивает объекты до вершины mainDiv
, однако это kludge и визуально непривлекательный.
Можно ли указать объект DOM, который не отображается? В идеале, я хотел бы иметь возможность указывать содержащий div и иметь html2canvas
игнорировать родительскую видимость, поэтому я могу отображать скрытые объекты, но, запрещая это, я хотел бы иметь возможность отображать объекты захвата, которые просто прокручиваются экран.
Любые мысли, идеи? Благодаря!
---- Вот пример кода. В принципе, если у вас есть куча div в div, проведите через них. Я на самом деле сделать это recursively
так, что только один, обрабатывается одновременно с обратным вызовом вызывающего рекурсивной функции, так это выглядит примерно так:
function recurser(anIndex, callback) {
if (anIndex == -1) {
callback();
return;
}
$(myDivs[anIndex]).html2canvas({
onrendered : function(canvas) {
var img = canvas.toDataURL();
// store the image in an array, do stuff with it, etc.
recurser(--anIndex, callback);
}
})
}
После того, как рекурсивные вызовы будут завершены, она выполняет функцию обратного вызова, которая является функцией, которая будет делать вещи с изображениями.
Опять же, все это прекрасно работает, пока объекты видны внутри прокручиваемого div, который содержит все divs в #mainDiv. Однако, если какая-либо часть divs прокручивается, они отображают черный цвет. Фактически, если половина из двух divs прокручивается (верхняя половина одной, нижняя половина следующего), они оба выглядят полностью черными.
Приложите некоторые примеры кода. – anataliocs
Добавлены примеры кода. – sneuf
@sneuf Это для любого конкретного браузера или вы видите это поведение в браузерах? – pseudosavant