html2canvas页面转为图片遇到的坑:文字叠加到一起

在PC项目中实现点击按钮将页面转换为海报功能时,使用html2canvas遇到问题:文字在生成图片后出现叠加。原因是由于最外层div使用了transform: scale(0.8)导致的不兼容。解决方案是移除该属性,以确保图片正确生成。

项目场景:

PC项目中,点击按钮,由页面转成海报功能,利用html2canvas将dom元素转成图片,然后可以进行右键图片另存为,还可以进行手动点击下载海报


问题描述

页面正常展示,当html2canvas转为图片后,文字全部叠加到了一起

html2canvas(document.getElementById("posterThumbnail"), {
            allowTaint: true,//允许跨域图片,这边要与后端协商,允许图片跨域访问??
            useCORS: true,//允许访问服务器图片,支持跨域
        }).then(function(canvas) {
            const url = canvas.toDataURL('image/png');// base64数据
            var image = new Image();
            image.src = url;
            image.style.width = '375px';
            image.style.height = '800px';
            let posterMain = document.getElementById("publicCoursePoster");
            posterThumbnail.style.display = 'none';//页面隐藏,图片显示
            posterMain.appendChild(image);
        })

原因分析:

由于需要屏幕适应海报,复用的是h5的页面,最外层的div使用了transform: scale(0.8)进行等比缩小,html2canvas对scale不兼容,捕获屏幕快照的时候文字叠加在一起


解决方案:

去掉transform:scale这个属性,生成的图片就正确了

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值