Nell'utilizzo di html2canvas, ho uno stack
di oggetti DOM (relativi posizionati div che contengono varie cose), che desidero creare miniature individuali per. Quindi se ci sono dieci div, creerò dieci miniature.html2canvas offscreen
Alcuni di questi oggetti saranno offscreen - tutti questi div sono in un unico div inglobatore chiamato "mainDiv". I iterare attraverso i div all'interno di mainDiv ed eseguire html2canvas su ognuno di essi individualmente.
Per quelli che sono sullo schermo, questo funziona correttamente. Quelli che sono fuori dallo schermo no - tornano in bianco. Ho creato una soluzione alternativa per far scorrere gli oggetti nella parte superiore dello mainDiv
, tuttavia si tratta di un kludge e visivamente poco attraente.
È possibile specificare un oggetto DOM che non è visibile? Idealmente, mi piacerebbe essere in grado di specificare un div contenente e avere html2canvas
ignorare la visibilità genitore, così posso screenare gli oggetti nascosti, ma a meno che, mi piacerebbe essere in grado di schermare gli oggetti di acquisizione che vengono semplicemente scrollati schermo.
Qualche idea, idea? Grazie!
---- Ecco alcuni esempi di codice. Fondamentalmente, se tu avessi un gruppo di div all'interno di un div, iterate attraverso di loro. Io in realtà fare questo recursively
in modo che solo uno viene elaborato alla volta, con la richiamata chiamando la funzione ricorsiva, così sembra qualcosa di simile:
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);
}
})
}
Una volta che le chiamate ricorsive sono completi, si esegue la funzione di callback, che è una funzione che farà cose con le immagini.
Ancora una volta, tutto questo funziona bene finché gli oggetti sono visibili all'interno del div di scorrimento che contiene tutti i div in #mainDiv. Una volta che una qualsiasi parte dei div è stata disattivata, tuttavia, diventano di colore nero. Infatti, se si esegue lo scrolling di metà di due div (la metà superiore di uno, la metà inferiore del successivo), entrambi risultano completamente neri.
Si prega di allegare alcuni esempi di codice. – anataliocs
Aggiunti alcuni esempi di codice. – sneuf
@sneuf Questo è per qualsiasi browser specifico o vedi questo comportamento tra i browser? – pseudosavant