前端截图html2canvas

前言

有时候前端可能会有给页面截图的需求,此时我们可以用比较常见的工具html2canvas,毕竟自己写的话也非常麻烦,一般人写不出来,下面就简单介绍下它吧

html2canvas 实际上就跟我们浏览器渲染html页面一样,他会先进行样式计算,然后开始布局,然后逐步绘制到canvas上,再把绘制好的canvas返回给我们就是了

同时它还处理了网络图片跨域等问题,可以说一步到位,自己写的花,光想就知道很麻烦了,这里就不多介绍了,直接看怎么使用

案例

导入 html2canvas

js 复制代码
yarn add html2canvas

使用案例

js 复制代码
import { useRef } from "react";
import html2canvas from "html2canvas";

function App() {
  const ref = useRef()
  
  return (
    <div className="App">
      <div ref={ref}>
        <h1>React Demo</h1>
        <h2>Welcome to the React demo application!</h2>
      </div>
      <div onClick={() => {
        //默认第二个参数option不用填写就行
        html2canvas(ref.current,  {
          //useCORS: true, // 解决跨域图片渲染问题,有网络图片可以考虑
          //scale: 2, // 提高分辨率,避免模糊
          //backgroundColor: '#ffffff', // 设置背景色(默认透明)
        }).then(canvas => {
          //直接下载图片
          const link = document.createElement('a');
          link.download = 'screenshot.png';
          link.href = canvas.toDataURL();
          link.click();
        });
      }}>点击</div>
    </div>
  );
}

export default App;
相关推荐
左手吻左脸。5 小时前
Vue 全栈面试题大全(2026 最新版最详细)
前端·javascript·vue.js
Aphasia3115 小时前
手写KeepAlive组件
前端·react.js·面试
两个西柚呀5 小时前
js中的同步和异步,三种处理异步任务的方式
前端·javascript
pe7er5 小时前
软件设计不要“既要又要”
前端·后端·架构
kyriewen5 小时前
从Webpack到Vite:我们迁移了一个10万行代码的项目,总结了这7个坑
前端·webpack·vite
IT_陈寒6 小时前
Java Stream并行流的坑:我花了3小时才找到的线程安全问题
前端·人工智能·后端
小新1106 小时前
最简单但完整的 Vue 响应式示例(一个简单的计数器按钮)
前端·javascript·vue.js
鹿青7 小时前
给设计稿做体检:我搓了个 Skill,专治 Figma 转代码出垃圾
前端·claude·视觉设计
陈_杨7 小时前
鸿蒙APP开发:足球战术App怎么做拖拽交互?球员拖动与路线绘制
前端
陈_杨7 小时前
鸿蒙APP开发:如果你想在鸿蒙App里做属性动画,@ohos.animator怎么用
前端