vue项目中使用html2canvas解决截图不全的问题

news2024/7/6 19:45:11
话不多说,直接上代码!!!
<div>
    <el-button @click="downloadPicture">下载</el-button>
    <div ref="imageDom">
      <el-table
        :data="tableData"
        style="width: 100%"
        :row-class-name="tableRowClassName"
      >
        <el-table-column prop="date" label="日期" width="180"> </el-table-column>
        <el-table-column prop="name" label="姓名" width="180"> </el-table-column>
        <el-table-column prop="address" label="地址"> </el-table-column>
        <el-table-column prop="age" label="年龄"> </el-table-column>
      </el-table>
   </div>
</div>
页面效果图展示(有横向和纵向的滚动条):

在这里插入图片描述

重点思路:

首先是获取要截取页面的父元素,通过clone并紧随于body之后,在生成幕布的时候不再拿着父元素去截取,而是截取clone的div,这样的话就可以实现整个页面的截取了

 //截图
    downloadPicture () {
      var width = this.$refs.imageDom.style.width
      var cloneDom = this.$refs.imageDom.cloneNode(true)
      cloneDom.style.position = 'absolute'
      cloneDom.style.top = '0px'
      cloneDom.style.zIndex = '-1'
      cloneDom.style.width = width
      document.body.appendChild(cloneDom)
      html2canvas(cloneDom).then(canvas => {
        // 转成图片,生成图片地址
        var imgUrl = canvas.toDataURL('image/png')
        var eleLink = document.createElement('a')
        eleLink.href = imgUrl // 转换后的图片地址
        eleLink.download = 'pictureName'
        // 触发点击
        document.body.appendChild(eleLink)
        eleLink.click()
        // 然后移除
        document.body.removeChild(eleLink)
      })
      cloneDom.style.display = 'none'
    },
下载一键截屏效果图展示如下(完美展示~~):

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/636521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

喜讯 | 华秋电子荣获证券时报年度高成长企业

6月9日&#xff0c;由证券时报社主办的第十一届中国创业投资论坛盛大开启&#xff0c;在论坛上&#xff0c;2023证券时报创投金鹰奖暨创业企业新苗奖评选隆重揭晓。 经过两个多月紧张的申报、投票、评选&#xff0c;近300家机构和企业的激烈比拼&#xff0c;最终一批独具韧劲、…

【React】React中编写CSS,Redux,RTX

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录 React中编写CSS内联样式普通csscss modulescss in js动态添加class ReduxJS纯函数如何创建redux…

中国联通泛终端技术生态创新成果发布,移远通信荣获业务与应用板块突出贡献奖

6月7日&#xff0c;以“轻联万物 共赴星海”为主题的2023中国联通泛终端技术生态创新成果发布会在北京举行。 会上&#xff0c;中国联通泛终端技术生态创新联合实验室对一年来作出突出贡献的单位进行了嘉奖。移远通信凭借其在物联网产品及应用解决方案等领域的深厚积累和突出贡…

KubeSphere 社区双周报 | OpenFunction 发布 v1.1.0 | 2023.5.26-6.8

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者&#xff0c;并对近期重要的 PR 进行解析&#xff0c;同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为&#xff1a;2023.05.26-2023.…

将本地项目推到gitee上

查看原来仓库地址 git remote -v删除原来仓库地址 git remote rm origin # git remote rm origin https://gitee.com/zhangxiaoQ/large-file-upload.git添加需要推送的仓库 git remote add origin https://gitee.com/stevencmu/large-file-upload.git

Unity Scene界面出好多黄线解决办法

点下 Button下的Visualize就消失

创建可引导的 macOS 安装器(可启动U盘)

Apple官网下载的macOS镜像&#xff0c;只是一个安装包&#xff0c;不带引导不能直接安装到空白mac机器的。 1、首先&#xff0c;你必须要有台能正常运行macOS的mac pc。 2、下载macOS Sierra 10.12 El Capitan 10.11 Yosemite 10.10 Mountain Lion 10.8 Lion 10.7 点按以…

智能工厂MES系统“超级大脑”,助力数字化工厂生产流程

随着现代工业的不断发展&#xff0c;数字化工厂已经成为了生产制造的新趋势。而在实现数字化转型过程中&#xff0c; MES系统则显得尤为重要。 那么&#xff0c;MES系统究竟能为数字化工厂带来什么神奇的魔力呢&#xff1f;下面就来一探究竟。 物料管理 MES系统可以提供物料的…

MySQL(七):一文带你学透 mysql运算符 (超详解)

运算符 前言一、算术运算符1、加法与减法运算符2、乘法与除法运算符3、求模&#xff08;求余&#xff09;运算符 二、比较运算符1、等号运算符2、安全等于运算符3、不等于运算符4、空运算符5、非空运算符6、最小值运算符7、最大值运算符8、BETWEEN AND运算符9、IN运算符10、NOT…

Prefix-Tuning论文解读

论文名称&#xff1a;Prefix-Tuning: Optimizing Continuous Prompts for Generation 论文地址&#xff1a;https://arxiv.org/pdf/2101.00190.pdf 论文代码&#xff1a;https://github.com/XiangLi1999/PrefixTuning 想搞prompt&#xff0c;看了好多篇&#xff0c;挑着记录…

【微前端架构】微前端——功能团队中缺失的一块拼图

在任何合法的前端开发团队中&#xff0c;提高可扩展性和敏捷性很少会成为头等大事。在处理大型、复杂的产品时&#xff0c;如何确保快速、频繁地交付同时包含后端和前端的功能&#xff1f;像后端那样将前端单体分解成许多更小的部分似乎是答案。如果执行得当&#xff0c;微前端…

IO500榜单最新出炉,HPC性能天花板提升15倍

近日&#xff0c;存储圈又有炸裂新消息。 高性能计算&#xff08;HPC&#xff09;领域最具影响力的IO500最新一期榜单公布&#xff0c;以华为OceanStor Pacific分布式存储为核心底座的Cheeloo-1系统表现一骑绝尘&#xff0c;在最重要的10节点榜单中以创纪录的13万总得分位列第…

基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统

基于jspmysqlmybatisSpring boot简单学生成绩信息管理系统 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方…

容器(第五篇)docker-compose

docker-compose用来单机上编排容器&#xff08;定义和运行多个容器&#xff0c;使容器能互通&#xff09;&#xff0c;Eg&#xff1a;前端和后端部署在一台机器上&#xff0c;现在直接通过编写docker-compose文件对多个服务&#xff08;可定义依赖&#xff0c;按顺序启动服务&a…

Burpsuite+Proxifier抓取exe数据包

本文转载与&#xff1a; https://mp.weixin.qq.com/s?__bizMzg4NTUwMzM1Ng&mid2247504341&idx1&sndb06bdc7434a34dd69930e3a7e3d8114&chksmcfa575c6f8d2fcd0830a7bb5d5c11b6e8a1465688d8f59cb2fd7b04685210ac2beae3bec18c2&mpshare1&scene23&srci…

vscode Delete `␍⏎·····`

在公司电脑首次拉取代码的时候&#xff0c;好多代码报错&#xff0c;在网上查了博客&#xff0c;确定是换行导致&#xff0c;但是参考网上的解决办法&#xff0c;没有解决&#xff0c;不管是设置 auto 还是命令行执行什么什么的&#xff0c;都不管用 下面介绍我的办法 首先&a…

葡萄目标检测相关论文和数据集

文章目录 2018Computer Vision and Machine Learning for Viticulture Technology 2020Grape detection, segmentation, and tracking using deep neural networks and three-dimensional association&#xff08;Computers and Electronics in Agriculture&#xff09; 2021Gr…

Vue中如何进行图片裁剪与上传?

Vue中如何进行图片裁剪与上传&#xff1f; 在Web开发中&#xff0c;经常需要使用图片&#xff0c;有时候需要对图片进行裁剪和上传&#xff0c;Vue作为一种流行的前端框架&#xff0c;提供了很多方便的工具和插件来帮助开发者实现这些功能。 图片裁剪 Vue中提供了很多图片裁剪…

采用SSM框架实现登录拦截,分页,批量删除的功能

本案列采用的技术有后端spring/springmvc/mybatis/jquery等技术&#xff0c;前端采用bootstrapjsp 项目结构如下图 依赖pom.xml文件 <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version>…

怎样的低代码平台才算是一个好用的低代码平台?

随着数字化转型的加速&#xff0c;低代码平台已经成为了企业数字化转型的一个重要工具。低代码近几年是一个很热门的概念&#xff0c;市场对低代码的需求也不断增加&#xff0c;但到底什么样的低代码平台才算是一个好用的低代码平台&#xff1f; 一个好用的低代码平台应具备以…