如何用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 相关文章推荐
全面解析Vue中的$nextTick
Dec 24 Vue.js
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
vue动态设置路由权限的主要思路
Jan 13 Vue.js
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
vue-cli中实现响应式布局的方法
Mar 02 Vue.js
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
Apr 17 Vue.js
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
May 25 Vue.js
Vue CLI中模式与环境变量的深入详解
May 30 Vue.js
vue实现锚点定位功能
Jun 29 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
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
yii2缓存Caching基本用法示例
2016/07/18 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
JavaScript OOP面向对象介绍
2010/12/02 Javascript
基于jquery的finkyUI插件与Ajax实现页面数据加载功能
2010/12/03 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
Bootstrap按钮功能之查询按钮和重置按钮
2016/10/26 Javascript
jQuery的Read()方法代替原生JS详解
2016/11/08 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
jQuery实现遍历XML节点和属性的方法示例
2018/04/29 jQuery
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
javascript中闭包closure的深入讲解
2021/03/03 Javascript
python utc datetime转换为时间戳的方法
2019/01/15 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
LivingSocial英国:英国本地优惠
2019/02/22 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
团队精神口号
2014/06/06 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
政协会议宣传标语
2014/10/09 职场文书
2014年政教处工作总结
2014/12/20 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
Pygame Rect区域位置的使用(图文)
2021/11/17 Python
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python
GoFrame框架数据校验之校验结果Error接口对象
2022/06/21 Golang