页面的dom节点样式
想要导出的图片样式
做法
1,使用html2canvas库
javascript
先在项目中安装:npm install html2canvas
在vue文件中引用: import html2canvas from "html2canvas";
2, 对于dom节点,不能有overflow: hidden
或者 overflow-y:auto
的样式设置。
正确写dom的方式是在外层div的类中写样式,内部div用来导出,尽量不要设置样式
javascript
<div class="mind-map-scroll-container">
<div ref="scrollBox">
......
</div>
</div>
.mind-map-scroll-container {
max-height: 300px; /* 设置最大高度,超出这个高度就会出现滚动条 */
overflow-y: auto; /* 出现垂直滚动条 */
position: relative;
background-color: white;
}
3,主要方法体
javascript
// 导出按钮绑定的方法
exportLogs() {
const node = this.$refs["scrollBox"];
this.downloadDomPic(
node,
`ComputerLog.png`
);
},
downloadDomPic(node, picName) {
html2canvas(node, { scale: 2, height: node.offsetHeight }).then(
(canvas) => {
const a = document.createElement("a");
a.href = canvas.toDataURL("image/jpg");
a.download = picName;
a.click();
}
);
},