如何用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 elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
全面解析Vue中的$nextTick
Dec 24 Vue.js
vue element和nuxt的使用技巧分享
Jan 14 Vue.js
Vue中引入svg图标的两种方式
Jan 14 Vue.js
Vue 数据响应式相关总结
Jan 28 Vue.js
Vue2.x-使用防抖以及节流的示例
Mar 02 Vue.js
关于vue中如何监听数组变化
Apr 28 Vue.js
springboot+VUE实现登录注册
May 27 Vue.js
Vue图片裁剪组件实例代码
Jul 02 Vue.js
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
VUE递归树形实现多级列表
Jul 15 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 实现身份验证代码
2010/03/24 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
原生JS实现图片轮播与淡入效果的简单实例
2016/08/21 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
js Dom实现换肤效果
2017/10/21 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
JS学习笔记之贪吃蛇小游戏demo实例详解
2019/05/29 Javascript
用Python的Django框架完成视频处理任务的教程
2015/04/02 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
python psutil监控进程实例
2019/12/17 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
.img/.hdr格式转.nii格式的操作
2020/07/01 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
移动端HTML5实现文件上传功能【附代码】
2016/03/25 HTML / CSS
Hotels.com中国区:好订网
2016/08/18 全球购物
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
酒店销售经理岗位职责
2014/01/31 职场文书
招商专员岗位职责
2014/02/08 职场文书
《台湾的蝴蝶谷》教学反思
2014/02/20 职场文书
离职信范文
2015/06/23 职场文书
Python 多线程之threading 模块的使用
2021/04/14 Python
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server
Python数据结构之队列详解
2022/03/21 Python
Mysql使用全文索引(FullText index)的实例代码
2022/04/03 MySQL