html2canvas 是前端常用的'DOM 转图片'库,核心逻辑是将页面 DOM 节点渲染为 Canvas,再转换为 Base64 或 Blob 格式的图片。下面整理了 9 个高频实战场景,涵盖从基础到进阶的完整流程,包含代码示例、参数配置及问题解决。
基础用法:DOM 转 Base64 图片
适合证书生成或简单截图分享,无需复杂配置。
先通过 npm 安装,或在项目中直接引用 CDN:
npm install html2canvas --save
模块化项目(Vue/React/Angular)引入:
import html2canvas from 'html2canvas';
非模块化项目可直接加载脚本:
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/html2canvas.min.js"></script>
核心代码实现
假设有一个目标容器 targetDom 和预览图片标签 previewImg:
document.querySelector('#btn').addEventListener('click', async () => {
const targetDom = document.getElementById('targetDom');
// 调用 html2canvas 生成 Canvas
const canvas = await html2canvas(targetDom, {
scale: 2, // 2 倍缩放,避免 Retina 屏模糊
useCORS: true, // 允许跨域图片
logging: false, // 关闭控制台日志
backgroundColor: null // 保留 DOM 原有背景
});
// 转为 Base64 图片(支持 jpeg/png)
base64Img = canvas.(, );
.(). = base64Img;
link = .();
link. = base64Img;
link. = ;
link.();
});

