html2canvas का उपयोग करने में, मेरे पास DOM ऑब्जेक्ट्स के stack
हैं (सापेक्ष स्थान div जिसमें विभिन्न चीजें हैं), कि मैं व्यक्तिगत थंबनेल बनाना चाहता हूं। तो यदि दस divs हैं, तो मैं दस थंबनेल बनाएगा।html2canvas ऑफस्क्रीन
इनमें से कुछ ऑब्जेक्ट ऑफस्क्रीन होंगे - इन divs का प्रत्येक एक "divDiv" नामक एक एकल, व्यापक div में हैं। मैं मुख्य डीआईवी के भीतर divs के माध्यम से पुनरावृत्त करता हूं और उनमें से प्रत्येक पर HTML2canvas निष्पादित करता हूं।
ऑनस्क्रीन वाले लोगों के लिए, यह ठीक काम करता है। जो लोग ऑफस्क्रीन हैं वे नहीं - वे वापस खाली आते हैं। मैंने एक वर्कअराउंड बनाया जो ऑब्जेक्ट्स को mainDiv
के शीर्ष पर स्क्रॉल करता है, हालांकि यह एक कड़वाहट और दृश्यमान रूप से अपरिहार्य है।
क्या एक DOM ऑब्जेक्ट निर्दिष्ट करना संभव है जो दिखाई नहीं दे रहा है? आदर्श रूप में, मैं एक युक्त div निर्दिष्ट करने में सक्षम होना चाहता हूं और html2canvas
अभिभावक दृश्यता को अनदेखा कर रहा हूं, इसलिए मैं छुपे ऑब्जेक्ट्स को कैप्चर कर सकता हूं, लेकिन इसे छोड़कर, मैं आसानी से स्क्रॉल किए गए ऑब्जेक्ट को कैप्चर करने में सक्षम होना चाहता हूं स्क्रीन।
कोई विचार, विचार? धन्यवाद!
---- यहां कुछ उदाहरण कोड है। असल में, यदि आपके पास एक div के भीतर divs का गुच्छा था, तो उनके माध्यम से पुनरावृत्त। मैं वास्तव में कॉलबैक पुनरावर्ती क्रिया बुला के साथ इस 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 के भीतर ऑब्जेक्ट दिखाई दे रहे हैं जिसमें #mainDiv में सभी divs शामिल हैं। एक बार divs के किसी भी भाग को स्क्रॉल कर दिया जाता है, हालांकि, वे काले रंग देते हैं। वास्तव में, यदि आधे में से दो divs को स्क्रॉल किया जाता है (एक का शीर्ष आधा, अगले के निचले हिस्से में), वे दोनों पूरी तरह से काले रंग देते हैं।
कुछ कोड उदाहरण देते हैं प्रदान की गई। – anataliocs
कुछ कोड उदाहरण जोड़े गए। – sneuf
@sneuf यह किसी विशिष्ट ब्राउज़र के लिए है या आप ब्राउज़र पर यह व्यवहार देखते हैं? – pseudosavant