如何用vue实现网页截图你知道吗


Posted in Vue.js onNovember 17, 2021

1、安装html2Canvas

npm install html2canvas --save

2、在需要的vue组件中引入

import html2canvas from "html2canvas";

3、编写一个截图按钮

<el-button class="button-dalod" size="mini" title="生成图片" @click="toImage()" icon="el-icon-download"></el-button>

4、调用函数toImage

// 页面元素转图片
        toImage () {
            // 手动创建一个 canvas 标签
            const canvas = document.createElement("canvas")
            // 获取父标签,意思是这个标签内的 DOM 元素生成图片
            // imageTofile是给截图范围内的父级元素自定义的ref名称
            let canvasBox = this.$refs.imageTofile
            // 获取父级的宽高
            const width = parseInt(window.getComputedStyle(canvasBox).width)
            const height = parseInt(window.getComputedStyle(canvasBox).height)
            // 宽高 * 2 并放大 2 倍 是为了防止图片模糊
            canvas.width = width * 2
            canvas.height = height * 2
            canvas.style.width = width + 'px'
            canvas.style.height = height + 'px'
            const context = canvas.getContext("2d");
            context.scale(2, 2);
            const options = {
                backgroundColor: null,
                canvas: canvas,
                useCORS: true
            }
            html2canvas(canvasBox, options).then((canvas) => {
                // toDataURL 图片格式转成 base64
                let dataURL = canvas.toDataURL("image/png")
                console.log(dataURL)
                this.downloadImage(dataURL)
            })
        },
        //下载图片
        downloadImage(url) {
            // 如果是在网页中可以直接创建一个 a 标签直接下载 
            let a = document.createElement('a')
            a.href = url
            a.download = '首页截图'
            a.click()
        },

别忘了给页面所在截图范围内的父级添加ref属性,方便canvas找到父级计算宽高从而截屏

如何用vue实现网页截图你知道吗

这就是截图出来的效果:

如何用vue实现网页截图你知道吗 

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注三水点靠木的更多内容!

Vue.js 相关文章推荐
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
基于vuex实现购物车功能
Jan 10 Vue.js
Vuex实现简单购物车
Jan 10 Vue.js
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
Vue实现简单计算器
Jan 20 Vue.js
如何封装Vue Element的table表格组件
Feb 06 Vue.js
vue3如何优雅的实现移动端登录注册模块
Mar 29 Vue.js
vue+spring boot实现校验码功能
May 27 Vue.js
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
vue实现锚点定位功能
Jun 29 Vue.js
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
vue特效之翻牌动画
Apr 20 Vue.js
Vue3中的Refs和Ref详情
Nov 11 #Vue.js
详细聊聊vue中组件的props属性
一定要知道的 25 个 Vue 技巧
简单聊聊Vue中的计算属性和属性侦听
Oct 05 #Vue.js
SSM VUE Axios详解
vue使用Google Recaptcha验证的实现示例
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 #Vue.js
You might like
PHP 和 MySQL 基础教程(三)
2006/10/09 PHP
ionCube 一款类似zend的PHP加密/解密工具
2010/07/25 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
linux下编译安装memcached服务
2014/08/03 PHP
浅析php原型模式
2014/11/25 PHP
PHP判断IP并转跳到相应城市分站的方法
2015/03/25 PHP
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
php工具型代码之印章抠图
2018/07/18 PHP
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
整理Javascript基础语法学习笔记
2015/11/29 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
JS生成一维码(条形码)功能示例
2017/01/19 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
在create-react-app中使用sass的方法示例
2018/10/01 Javascript
Vue源码解析之数组变异的实现
2018/12/04 Javascript
跟老齐学Python之做一个小游戏
2014/09/28 Python
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
Windows下python2.7.8安装图文教程
2016/05/26 Python
python3 批量获取对应端口服务的实例
2019/07/25 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
python爬虫搭配起Bilibili唧唧的流程分析
2020/12/01 Python
澳大利亚新奇小玩意网站:Yellow Octopus
2017/12/28 全球购物
新闻学毕业生自荐信
2013/11/15 职场文书
《苏珊的帽子》教学反思
2014/04/07 职场文书
高三毕业寄语
2014/04/10 职场文书
户外宣传策划方案
2014/05/25 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server