项目中需要将页面部分显示区域进行截图保存。
使用html2canvas截取类似下方的图片。
div里面套了若干个canvas图片。
但是截取后的图片,div里面的canvas显示不全,只能显示部分区域。
尝试过延时截图、跨域等方法,但是都没有解决。
let canvas = await html2canvas(target, {
useCORS:true,//跨域
imageTimeout:2000//延时
});
查阅了html2canvas的git issus,找到类似的问题
How to render full of hidden part in 'overflow:auto' div · Issue #60 · niklasvh/html2canvas · GitHub
再回头查项目代码,发现canvas1和canvas2的外面,包了一层span,span的样式设置成了
<span style="overflow:hidden;">
//canvas图片显示代码
</span>
去掉hidden,可以正常截图。