先上效果图
代码片段
handleImg() {
const element = document.querySelector('.pop-table-box') // 要转换成图片的DOM元素
const width = element.scrollWidth // 获取元素实际宽度
const height = element.scrollHeight // 获取元素实际高度
element.style.height = height + 'px' // 暂时改变纵向滚动条高度,等于实际高度
this.submitLoading('生成图片中...')
html2canvas(element, {
width: width,
height: element.offsetHeight,
windowWidth: width + 240, // 少多少宽度补多少宽度,会少一部分数据,我自己加上了,没找到原因
scale: 1, //设置放大的倍数
useCORS: true // 如果页面中有跨域图片,确保设置为true
})
.then((canvas) => {
this.popImg = canvas.toDataURL('image/png') // 转换为DataURL格式的图片
if (this.popImg) {
this.msgSuccess('生成成功')
} else {
this.msgError('生成失败')
}
element.style.height = '300px' // 成功之后把高度改回来
this.submitLoading().close()
})
.catch(() => {
this.submitLoading().close()
})
},
随手记录,对你有帮助的话,点个赞吧,谢谢!