html2canvas组件低版本 img标签转换后显示空白,其它正常展示
尝试了很多种方法,发现原来只要改一点点小样式是就解决了,说下我的解题思路,查了很多方法说是跨域问题,但是我的图片是不存在跨域的,于是不信邪还是试图修改了:
$('.card').attr('crossOrigin', 'anonymous');
设置了元素的允许跨域的属性还是不可以,又设置了html2canvas组件允许跨域:
const config = {
useCORS: true,
};
结果都一样,图片还是显示空白,后面又尝试将图片转换成base64的格式:
imgToBase64Cancas(url,callback){
const image = new Image()
image.src = url
image.onload = () => {
const canvas = document.createElement('canvas')
canvas.width = image.naturalWidth // 使用 naturalWidth 为了保证图片的清晰度
canvas.height = image.naturalHeight
canvas.style.width = `${canvas.width / window.devicePixelRatio}px`
canvas.style.height = `${canvas.height / window.devicePixelRatio}px`
const ctx = canvas.getContext('2d')
if (!ctx) {
return null
}
ctx.drawImage(image, 0, 0)
const base64 = canvas.toDataURL('image/png')
callback(base64)
}
image.onerror = (err) => {
callback('')
}
},
图片转换成功了,但是还是不行!于是想到之前看过一个文章好像说到position+z-index属性会有影响,于是将z-index:-1改成z-index:99就解决了!!!