前端截图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;
相关推荐
空中海3 小时前
第七章:vue工程化与构建工具
前端·javascript·vue.js
zhensherlock4 小时前
Protocol Launcher 系列:Trello 看板管理的协议自动化
前端·javascript·typescript·node.js·自动化·github·js
zhuà!4 小时前
element的el-form提交校验没反应问题
前端·elementui
龙猫里的小梅啊4 小时前
CSS(一)CSS基础语法与样式引入
前端·css
小码哥_常4 小时前
从0到1,开启Android音视频开发之旅
前端
渔舟小调4 小时前
P19 | 前端加密通信层 pikachuNetwork.js 完整实现
开发语言·前端·javascript
qq_12084093714 小时前
Three.js 工程向:Draw Call 预算治理与渲染批处理实践
前端·javascript
不会聊天真君6477 小时前
JavaScript基础语法(Web前端开发笔记第三期)
前端·javascript·笔记
IT_陈寒7 小时前
SpringBoot自动配置这破玩意儿又坑我一次
前端·人工智能·后端