在使用 html2canvas 时,我有一个stack
DOM 对象(包含各种东西的相对定位的 div),我希望为其创建单独的缩略图。因此,如果有十个 div,我将创建十个缩略图。
其中一些对象将在屏幕外——这些 div 中的每一个都位于一个名为“mainDiv”的包含 div 中。我遍历 mainDiv 中的 div 并分别在每个 div 上执行 html2canvas。
对于那些在屏幕上的人来说,这很好用。那些不在屏幕上的则不会——它们会返回空白。我创建了一个解决方法,将对象滚动到mainDiv
.
是否可以指定不可见的 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);
}
})
}
一旦递归调用完成,它就会执行回调函数,该函数将对图像进行处理。
同样,只要对象在包含#mainDiv 中所有 div 的滚动 div 中可见,所有这些都可以正常工作。但是,一旦滚动了 div 的任何部分,它们就会呈现黑色。事实上,如果两个 div 的一半被滚动(一个的上半部分,下一个的下半部分),它们都呈现完全黑色。