博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
html2canvas在Vue项目踩坑-生成图片偏移不完整
阅读量:6111 次
发布时间:2019-06-21

本文共 647 字,大约阅读时间需要 2 分钟。

背景

最近做一个Vue项目需求是用户长按保存图片,页面的数据是根据不同id动态生成的,页面渲染完生成内容图片让用户长按保存的时候,把整个页面都保存起来。

在项目遇到的坑是图片能生成,可是生成的图片总是往左偏移一部份内容,让显示的图片不完整

页面渲染的内容,而生成的图片效果要跟页面渲染的内容一致,下面是渲染的效果

 

 

 而实际生成的图片是不完整的

 

测试:多次生成图片发现图片发生偏移的位置都不相同,而同一个特性是往左偏移。

工作原理:Html2canvas加载后将会浏览页面上的所有元素,集合所有页面元素的信息,页面元素在vue渲染完成时Html2canvas把整个页面(整屏)的内容生成base64的图片。

猜想:vue生命周期渲染页面未加载完html2canvas就生成图片,->。

思考:既然是没渲染完成就生成图片,那就等vue页面渲染完成再执行html2canvas生成图片。

解决方案

在vue mounted周期利用setTimeout函数延迟执行html2canvas,这样就避免vue页面没渲染完成就执行html2canvas

 

mounted() {    setTimeout(function () {        this.toImage();    },1000); }

 

 

html2canvas这个插件存有bug略坑,总结了几个遇到的坑及解决方法,待更新.....

转载于:https://www.cnblogs.com/chenhaihui/p/10120015.html

你可能感兴趣的文章
java的特殊符号
查看>>
word2010中去掉红色波浪线的方法
查看>>
fabric上下文管理器(context mangers)
查看>>
JQuery-EasyUI Datagrid数据行鼠标悬停/离开事件(onMouseOver/onMouseOut)
查看>>
并发和并行的区别
查看>>
软件测试之作业二
查看>>
Java字符串中常见的10个问题
查看>>
html table 知识点
查看>>
struct和union分析实例
查看>>
xml文件的建立和编码[SimpleXMLElement]
查看>>
在Unity3d中调用外部程序及批处理文件
查看>>
设计模式值六大原则——迪米特法则(LoD)也称为最少知识原则(LKP)。
查看>>
HDU 1242 Rescue(BFS + 优先队列)
查看>>
UVa 572 Oil Deposits(简单DFS)
查看>>
往每一个数组前面追加一个前缀
查看>>
Golang游戏服务器与skynet的个人直观比较
查看>>
Bootstrap关于表单(二):水平表单
查看>>
CAP定理
查看>>
Permutations
查看>>
Android布局技巧——合并布局
查看>>