vue项目中使用html2canvas 下载当前页面(动态页面宽度、高度)

老规矩先上效果图: 

需求1、 只要上图红色区域的内容下载,就需要计算红色区域的内容的动态宽度高度。 

需求2、当前页面可视区域的内容下载,上传按钮下面的所有内容。

一、 安装依赖 :安装html2canvas插件

npm isntall html2canvas 或者
cnpm isntall html2canvas

 二、在vue项目使用的页面 里面 引入插件

import html2canvas from 'html2canvas'

三、设置截图区域的dom 的div标签的ref

3-1、 当前页面可视区域的内容截屏下载

      <el-row style="margin-bottom:10px"><el-button type="primary" icon="el-icon-upload" @click="screenShot()">截屏</el-button></el-row>
      <div ref="screen"><canvas id="myCanvas" :width="canvasWidth" :height="canvasHeight">你的浏览器还不支持canvas</canvas></div>

3-2、 只要上图红色区域的内容下载,就需要计算红色区域的内容的动态宽度高度

      <div ref="screen" :style="{width: canvasWidth, height: canvasHeight}"><canvas id="myCanvas" :width="canvasWidth" :height="canvasHeight">你的浏览器还不支持canvas</canvas></div>

四、截图并下载图片到本地

//截屏
screenShot () {html2canvas(this.$refs.screen, {backgroundColor: '#FFFFFF',useCORS: true}).then((canvas) => {if (navigator.msSaveBlob) { // IE10+ let blob = canvas.msToBlob(); return navigator.msSaveBlob(blob, name); } else {let imageurl = canvas.toDataURL('image/png')//这里需要自己选择命名规则let imagename = ""this.fileDownload(imageurl, imagename)}})
},
//下载截屏图片
fileDownload(downloadUrl, downloadName) {let aLink = document.createElement("a");aLink.style.display = "none";aLink.href = downloadUrl;aLink.download = `${downloadName}.jpg`;// 触发点击-然后移除document.body.appendChild(aLink);aLink.click();document.body.removeChild(aLink);
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker容器嵌入式开发:在Ubuntu上配置Postman和flatpak

在 Ubuntu 上配置 Postman 可以通过 Snap 命令完成&#xff0c;以下是所有命令的总结&#xff1a; sudo snap install postmansudo snap install flatpak在 Ubuntu 上配置 Postman 和 Flatpak 非常简单。以下是一些简单的步骤&#xff1a; 配置 Flatpak 安装 Flatpak&#x…

OpenHarmony实战开发-如何实现一个小鸟避障游戏。

介绍 本示例用于验证OpenHarmony提供的Stage模型&#xff0c;Canvas组件做小游戏的能效是否符合预期&#xff0c;以及验证资源调度子系统的API接口是否符合后台规范运行的预期。 效果预览 使用说明 1.点击ConnectService按钮&#xff0c;创建一个ServiceAbility并连接。 2.…

数据的属性与相似性

目录 一、数据集的结构&#xff08;一&#xff09;二维表&#xff08;二&#xff09;数据矩阵 二、属性的类型&#xff08;一&#xff09;连续属性&#xff08;二&#xff09;离散属性&#xff08;三&#xff09;分类属性&#xff08;四&#xff09;二元属性&#xff08;五&…

【图论】图的存储--链式前向星存图法以及深度优先遍历图

图的存储 介绍 无向图-就是一种特殊的有向图-> 只用考虑有向图的存储即可 有向图 邻接矩阵邻接表 邻接表 存储结构: (为每一个点开了一个单链表,存储这个点可以到达哪个点) 1:3->4->null2:1->4->null3:4->null4:null 插入一条新的边 比如要插一条边&am…

Go语言不能常量取址!?

题如下图 在软件开发中&#xff0c;常量是一种重要的编程元素&#xff0c;它们在程序中起到固定值的作用被大量使用 Go语言中的常量取址 在 Go 语言中&#xff0c;常量是无法被取址的。这意味着我们不能使用取址操作符 & 来获取常量的地址。例如&#xff1a; const a …

vue3移动端H5 瀑布流显示列表

以上效果 是之前发送的改进版 waterList <template><view class"pro-cons" v-if"data.length"><view class"cons-left"><template v-for"(item, index) in data"><template v-if"(index 1) % 2 1…

scala代码中报Cannot resolve symbol %

1、问题复现 2、解决 &#xff08;1&#xff09; &#xff08;2&#xff09; &#xff08;3&#xff09;检查返回类型&#xff0c;应该是Int 我之前用的&#xff08;.var&#xff09;自动生成返回值&#xff0c;他生成的类型是[Range.Inclusive]&#xff0c;这个类型是scala …

Spring-IoC 基于xml管理

现大多使用注解方式&#xff0c;xml方式并不简洁&#xff0c;本文仅记录xml用作基础学习。 0、前提 首先在父项目的pom.xml中配置好依赖们。然后子模块也可以使用这些依赖。 在resource目录下创建Spring的xml文件&#xff0c;名称无要求&#xff0c;本文使用bean.xml。文件最…

vmware 一打开虚拟机就蓝屏重启

按照正常步骤安装完镜像后&#xff0c;点击 开启此虚拟机 &#xff0c;直接出现下图所示蓝屏&#xff0c;然后重启。 解决的办法是通过修改 启用或关闭windows功能 里的选项&#xff0c;如下图&#xff0c;勾选上 Windows虚拟机监控程序平台 和 虚拟机平台 两项。然后重启电脑…

海外仓的出入库流程有什么痛点?位像素海外仓系统怎么提高出入库效率?

随着跨境电商的蓬勃发展&#xff0c;海外仓是其中不可或缺的一个关键环节。而货物的出库与入库则是海外仓管理中的一个核心业务流程&#xff0c;它的运作效率直接影响到整个跨境物流的效率和客户体验。今天&#xff0c;让我们具体来看一看关于海外仓出入库的流程&#xff0c;其…

Transformer详解和知识点总结

目录 1. 注意力机制1.1 注意力评分函数1.2 多头注意力&#xff08;Multi-head self-attention&#xff09; 2. Layer norm3. 模型结构4. Attention在Transformer中三种形式的应用 论文&#xff1a;https://arxiv.org/abs/1706.03762 李沐B站视频&#xff1a;https://www.bilibi…

正则问题【蓝桥杯】/dfs

正则问题 dfs 刚开始用的是栈&#xff0c;没有想到dfs… #include<iostream> #include<stack> using namespace std; string s; int pos; int dfs() {//ans表示到当前位置最多的x数目//num表示暂存的x数目int num0,ans0;while(pos<s.size()){if(s[pos](){pos;…

虚拟机VMware的下载、注册码(Mac与Windows)

1. 虚拟机的下载 windows 版的虚拟机叫 VMware Workstation mac版的虚拟机叫 VMware Fusion 官网下载地址: window 下载地址 https://www.vmware.com/content/vmware/vmware-published-sites/us/products/workstation-pro.html mac 下载地址 https://www.vmware.com/prod…

C++ STL

C STL&#xff08;标准模板库&#xff09;是一套功能强大的 C 模板类&#xff0c;提供了通用的模板类和函数&#xff0c;这些模板类和函数可以实现多种流行和常用的算法和数据结构&#xff0c;如向量、链表、队列、栈。 学习重点&#xff1a; 组件描述容器&#xff08;Contai…

Linux:文本编辑器 - vim

Linux&#xff1a;文本编辑器 - vim vim基本操作普通模式模式切换移动光标复制粘贴删除替换撤销 底行模式行号查找 vim基本操作 Vim(Vi Improved)是一款功能强大的文本编辑器&#xff0c;是Unix/Linux系统中广泛使用的编辑器之一。它源于上世纪70年代开发的Vi编辑器&#xff0…

在Linux中安装Android Studio(ubuntu22.04)

在Linux中安装Android Studio 准备工作 系统&#xff1a;ubuntu 22.04 位数&#xff1a;64bit 安装要求&#xff1a; 安装流程 1.下载安装包 打开Android Studio官网 把Android Studio的安装包下载下来 2.安装 为了防止丢失&#xff0c;把解压好的文件夹移到 /usr/local…

斐讯E1拆机焊接TTL救砖

从老家的柜子里翻出来一台斐讯E1&#xff0c;老家在用的是斐讯K2P&#xff0c;300M宽带&#xff0c;房间和大部分位置wifi5足够跑满了&#xff0c;一直懒得升级&#xff0c;也足够用了。 不过发现部分位置信号比较弱&#xff0c;都不到50M&#xff0c;考虑插上E1做个AP中继&…

网络安全---非对称数据加密签名验证

一、课题描述 三位同学一组完成数据的非对称加密和数字签名验证传输。 三位同学分别扮演图中 Alice、Bob 和 CA 三个角色&#xff0c;Bob 和 Alice 从 CA 中获得数字证书、Bob 向 Alice 发送秘密发送一段加密并签名后的信息&#xff0c;Alice 获取 Bob 发送的加密信息&#x…

ZYNQ学习之Petalinux 设计流程实战

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ PetaLinux工具提供了在 Xilinx 处理系统上自定义、构建和部署嵌入式 Linux 解决方案所需的…

简单题之数字总结

1.求数的幂 考点&#xff1a;二分幂&#xff08;快速幂&#xff09;的应用 思路&#xff1a; 直接暴力会超时&#xff0c;因此我们考虑用递归实现 如何用递归实现&#xff1f; 二分幂:对我们的幂次数分情况考虑&#xff1a; 1.M0&#xff0c;return 1; 2.M为奇数时&#xff0c…