html2canvas在Vue项目踩坑-生成图片偏移不完整
背景
最近做一个Vue项目需求是用户长按保存图片,页面的数据是根据不同id动态生成的,页面渲染完生成内容图片让用户长按保存的时候,把整个页面都保存起来。
在项目遇到的坑是图片能生成,可是生成的图片总是往左偏移一部份内容,让显示的图片不完整
页面渲染的内容,而生成的图片效果要跟页面渲染的内容一致,下面是渲染的效果
而实际生成的图片是不完整的
测试:多次生成图片发现图片发生偏移的位置都不相同,而同一个特性是往左偏移。
工作原理:Html2canvas加载后将会浏览页面上的所有元素,集合所有页面元素的信息,页面元素在vue渲染完成时Html2canvas把整个页面(整屏)的内容生成base64的图片。
猜想:vue生命周期渲染页面未加载完html2canvas就生成图片,->了解Vue生命周期。
思考:既然是没渲染完成就生成图片,那就等vue页面渲染完成再执行html2canvas生成图片。
解决方案
在vue mounted周期利用setTimeout函数延迟执行html2canvas,这样就避免vue页面没渲染完成就执行html2canvas
mounted() {setTimeout(function () {this.toImage();},1000);}
html2canvas这个插件存有bug略坑,总结了几个遇到的坑及解决方法,待更新.....
转载于:https://www.cnblogs.com/chenhaihui/p/10120015.html
html2canvas在Vue项目踩坑-生成图片偏移不完整相关推荐
- html2canvas图片的文字偏移,html2canvas在Vue项目踩坑-生成图片偏移不完整
背景 最近做一个Vue项目需求是用户长按保存图片,页面的数据是根据不同id动态生成的,页面渲染完生成内容图片让用户长按保存的时候,把整个页面都保存起来. 在项目遇到的坑是图片能生成,可是生成的图片总是 ...
- Django Vue 项目踩坑记:The field admin.LogEntry.user was declared with a lazy reference to ‘xxx‘
功能期望 基于Django提供的AbstractUser类重写User模型,在其中根据业务需求增加信息,并将新的用户模型设为系统默认用户模型. 问题描述 完成自定义User模型的编写,并在settin ...
- java 做项目踩坑,web项目踩坑过程
sql函数设计: 一开始本来是直接用Java的jdbc直接传输操作语句的.但后来学了存储过程发现存储过程可以提高不少的效率.就重构了自己对数据库的操作代码.包括:开启,查找,修改,关闭. 开启:直接使 ...
- vuex modules ajax,VUE项目爬坑---6、vuex的真正存在的意义是什么
VUE项目爬坑---6.vuex的真正存在的意义是什么 一.总结 一句话总结: a.[避免低效的数据传递]:当多个组件嵌套的时候,只能父子传递,那么中间的组件只能做传递数据之用,数据不是它用,它却传递 ...
- vue.js踩坑之单向数据流
vue.js父子组件之间的数据通信,细节总结 隐性规则:单行数据流 学前疑问: 1.父组件如何向子组件通信数据? 2.父组件可以直接修改子组件的数据!但是反过来绝对不可以!那怎么解决这个问题呢? 3. ...
- vue.js踩坑之ref引用细节点
vue.js组件之H5页面,DOM标签或者组件中,通过ref="自定义name名称"引用的细节点 要点简介:[ 见下文案例 ] 使用is=" "解决H5出现的标 ...
- 配合Opencv2.4.9,CMake3.12.1和VS2010在win10下构建项目踩坑记录
配合Opencv3,CMake和VS2010在win10下构建项目踩坑记录 参考https://blog.csdn.net/qq_26623659/article/details/78322782 博 ...
- 丰田项目踩坑手记(REACT)
丰田项目踩坑手记(REACT) 路由配置的时候:要引入hash路由不是browswer那个 路由参考网址:react-guide.github.io/react-route- 路由网址:reacttr ...
- vue创建项目踩坑记录 443 ECONNRESET
安装nodejs 并创建vue 项目的记录 首先安装nodejs 是傻瓜式操作,配置环境变量的可以参考这个博文: 点击跳转安装教程 查看node版本和npm 版本 使用淘宝镜像cnpm 第二步项目初始 ...
最新文章
- AttributeError: ‘tuple‘ object has no attribute ‘group‘
- 解决THINKPHP 支付宝接口异步notify 无效可能的问题。
- redis的基础命令操作
- rhel6.5网卡初始化错误解决
- 在linux系统中查看组管理信息命令,Linux用户和组管理常用命令
- Windows IIS 日志分析研究(Log Parser Log Parser Lizard Log Parser Studio) update...
- LeetCode 第 21 场双周赛(779/1913,前40.7%)
- java map 多个值_java 一个函数EnumMap返回多个值
- unity底层运行机制_Unity跨平台的机制原理
- html5 box sizing,CSS 盒模型与box-sizing
- 直播不是造车,特斯拉开店玩直播却栽了个“跟头”
- nginx的web基础
- 30种EMC标准电路分享,再不收藏就晚了!
- bch matlab,求助!关于matlab中BCH码的弱问题
- PMP培训内容有哪些?
- 死党教会我的编程”记忆大法“,安排!不看可别后悔
- java保姆级教程—— 1.什么是游戏
- linux 日志空间,情景linux--如何解决服务器日志过多导致的磁盘空间不足?
- python抓取微博热搜列表
- python pandas库作用_python pandas库的一些使用总结
热门文章
- python mkl freebsd_FreeBSD:在uwsgi中使用python3而不是python2
- eeglab教程系列(2)-加载、显示数据
- 买不起手办就用AI渲染一个!用网上随便搜的图就能合成,已有网友开炒游戏NFT...
- 才一年,智能车就不再是新势力专利!
- 用身体给可穿戴设备充电,网友:离人类被当作电池更近一步!
- 让AI说话告别三观不正,OpenAI只用80个文本就做到了
- GPT-3开始探索付费使用:每月给个700块,写得比莎士比亚还多
- 能迂回,会绕路的开源游戏AI:解决怪物撞墙卡死角
- 不写代码,用图形界面搞机器学习:MIT发布“全球最快AutoML”,刷新DARPA比赛成绩...
- github push时候报错解决方法