使用html2canvas库对可滚动的dom节点导出全量的图片

页面的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();
        }
      );
    },
相关推荐
云水一下35 分钟前
HTML5 从入门到精通:实战收官——从零搭建完整静态网站,综合运用所有知识
前端·html5
不总是1 小时前
Windows 系统 Node.js 免安装版(zip)安装与配置教程(2026 最新)
前端·windows·node.js
冬奇Lab1 小时前
每日一个开源项目(第105篇):Twenty - 跳出 Salesforce 的圈套,定义现代开源 CRM
前端·后端·开源
zhangyao9403302 小时前
开发pc端时,表格的高度怎么设置才能铺满页面
前端·javascript·elementui
XinZong2 小时前
实测OpenClaw虾淘:全民工具AI时代,冷门非工具类的Skill还能出圈吗?
javascript
kjs--2 小时前
浏览器书签执行脚本
前端
烛衔溟2 小时前
TypeScript 类的类型 —— 作为类型使用
javascript·ubuntu·typescript
之歆2 小时前
Day16_JavaScript 轮播图与事件工程实战(下篇)
服务器·开发语言·前端·javascript·网络·性能优化
沄媪2 小时前
CSRF 跨站请求伪造
前端·ctf·csrf
kyriewen3 小时前
我关掉了Copilot:因为我写的代码出现在了别人的建议里
前端·javascript·ai编程