如何用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组件生命周期运行原理解析
Nov 25 Vue.js
详解Vue 的异常处理机制
Nov 30 Vue.js
vue使用exif获取图片经纬度的示例代码
Dec 11 Vue.js
如何在vue 中使用柱状图 并自修改配置
Jan 21 Vue.js
vue穿梭框实现上下移动
Jan 29 Vue.js
vue实现简单数据双向绑定
Apr 28 Vue.js
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
分享一个vue实现的记事本功能案例
Apr 11 Vue.js
关于vue-router-link选择样式设置
Apr 30 Vue.js
Vue ECharts实现机舱座位选择展示功能
May 15 Vue.js
Vue Element plus使用方法梳理
Dec 24 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的图形函数中显示汉字
2006/10/09 PHP
探讨各种PHP字符串函数的总结分析
2013/06/05 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
php实现数据库的增删改查
2017/02/26 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
node.js中的emitter.on方法使用说明
2014/12/10 Javascript
angular2使用简单介绍
2016/03/01 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
react 移动端实现列表左滑删除的示例代码
2019/07/04 Javascript
弱类型语言javascript中 a,b 的运算实例小结
2019/08/07 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
Python中的匿名函数使用简介
2015/04/27 Python
Python编程修改MP3文件名称的方法
2017/04/19 Python
python配置grpc环境
2019/01/01 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
一文秒懂python读写csv xml json文件各种骚操作
2019/07/04 Python
Python Web框架之Django框架Model基础详解
2019/08/16 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
python对指定字符串逆序的6种方法(小结)
2020/04/02 Python
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
Boden澳大利亚官网:英国在线服装公司
2018/08/05 全球购物
遇到的Mysql的面试题
2014/06/29 面试题
财务会计人员岗位职责
2013/11/30 职场文书
网吧收银员岗位职责
2013/12/14 职场文书
优秀教师主要事迹
2014/02/01 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
初三新学期计划书
2014/05/03 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
用python批量解压带密码的压缩包
2021/05/31 Python
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS