当前位置: 首页 > news >正文

使用html2canvas插件进行页面截屏

使用纯html实现过程

<!DOCTYPE html>
<html><head><title>使用html2canvas生成网页截图</title><script src="https://html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
</head><body><h1>使用html2canvas生成网页截图</h1><div id="content"><p>这是一个要截图的元素12345</p></div><script>// target是代表要截图的元素范围(就是截图当前元素包括当前元素内的子元素)var target = document.getElementById('content')html2canvas(target).then(function (canvas) {// 参数canvas就是绘画的(截屏)的图片// 如果要给canvas元素添加css,本人亲测不行,只能用下面的方法给canvas元素加样式,加完样式再追加到页面中(亲测可行,本人暂时没有别的好办法,说的不对还请见谅)const capturedCanvas = canvascapturedCanvas.style.border = '2px solid red'// 将生成的图片追加到document.body里面document.body.appendChild(canvas)});</script>
</body></html>

使用框架(vue,react,uniapp)实现

需要先下载依赖包

npm install html2canvas

下面是一个完整的页面代码,可以直接运行

<template><div ref="tu" id="tupian" style="font-family: initial;"><button @click="captureScreen">点击截屏</button><image :src="imgurl" alt="" mode="aspectFill"/></div>
</template><script>
import { ref } from 'vue';
import html2canvas from 'html2canvas';export default {setup() {const tu = ref(null)const imgurl = ref('')const captureScreen = () => {// 截屏的元素区域var target = document.getElementById('tupian')// 添加截屏的逻辑html2canvas(target).then(function (canvas) {console.log(canvas);// canvas就是当前截屏出来的屏幕样式,可以通过以下方法给生成的图片加样式const capturedCanvas = canvas;capturedCanvas.style.width = '100%';capturedCanvas.style.height = '200px';capturedCanvas.style.border = '2px solid red';// 将生成的界面添加到当前组件内(直接展示canvas,如果想替换img的话往下面看)// tu.value.appendChild(canvas)const dataURL = canvas.toDataURL();// 这个就是base64格式的图片地址console.log(dataURL);// 将图片地址赋值给imgimgurl.value = dataURL});};return {captureScreen,tu,imgurl};}
};
</script>
<style lang="scss">
</style>

效果图
在这里插入图片描述

http://www.lryc.cn/news/230942.html

相关文章:

  • Java --- JVM的执行引擎
  • 前端学习笔记--node.js
  • DB2 常用命令及SQL语句
  • spring-boot-starter-data-redis2.X连接redis7
  • PHP中$_SERVER全局变量
  • 【ML】欠拟合和过拟合的一些判别和优化方法(吴恩达机器学习笔记)
  • 服务器数据恢复—服务器发生故障导致数据丢失如何恢复服务器数据?
  • SLAM中提到的相机位姿到底指什么?
  • 《视觉SLAM十四讲》-- 后端 1(上)
  • 南昌市西湖区棒球特色规划
  • nginx启动命令
  • 防爆五参数气象仪的科技力量
  • J. Chem. Theory Comput. | AI驱动的柔性蛋白-小分子复合物建模
  • 数据库sql语句设置外键
  • excel在函数中插入函数
  • 保姆级前端翻牌效果(CSS)
  • Mac环境配置的相关知识
  • 业务连续性:确保稳健运营的关键战略
  • 【Pytorch和深度学习】栏目导读
  • sklearn笔记:neighbors.NearestNeighbors
  • V-for中 key 值的作用,如何选择key
  • linux内核驱动开发
  • 2.3.5 交换机的VRRP技术
  • Knowledge Graph Reasoning with Relational Digraph
  • 力扣203:移除链表元素
  • Moto edge s pro手机 WIFI和蓝牙连接不上 解决方法分享
  • 两万字图文详解!InnoDB锁专题!
  • 2023湖南省赛
  • AISchedule(3):基础生成表格
  • OpenAI 上线新功能力捧 RAG,开发者真的不需要向量数据库了?