html2canvs图片空白,html2canvas.js插件截图空白问题

本文介绍了在前端使用html2canvas.js插件进行截图时遇到的空白和截图不全的问题。问题根源在于body的滚动条导致截图异常。解决方案是通过设置滚动条位置到顶部,并针对特定内容标签调整截图尺寸。示例代码展示了如何实现这一过程,包括将截图保存为PNG图片并提供下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发现使用

html2canvas.js插件截图保存在前端很方便。学习过程中预计问题。

截图出现空白和截图不全。

问题原因:

html2canvas.js插件截图是基于body标签的,如果body存在滚动条就会出现截图空白的情况。如何避免:

关键点:在截图前将滚动条位置设置在顶部。截图时,截图选择内容标签不是body,就将截图宽度和高度设置为选择标签的宽高在截图。

具体代码:

点击保存图片分享给好友

js代码:

$("#down").click(function(){

// 截图前先讲滚动条置顶

$('html,body').animate({'scrollTop':0});

// document.getElementById("contbox") 需要截图的是div标签

html2canvas(document.getElementById("contbox"),

{logging:false,

width:$("#contbox").width(),// 宽设置为div标签的宽

height:$("#contbox").height(),// 高设置为div标签的高

useCORS:true}).then(function(canvas) {

//将canvas画布放大若干倍,然后盛放在较小的容器内,就显得不模糊了

var timestamp = Date.parse(new Date());

//把截取到的图片替换到a标签的路径下载

$("#down1").attr('href',canvas.toDataURL("image/png"));

console.log(canvas.toDataURL("image/png"));

//下载下来的图片名字

$("#down1").attr('download',timestamp + '.png') ;

$("#down1")[0].click();

//document.body.appendChild(canvas);

});

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值