html2canvas如何在元素隐藏的情况下生成截图

摘要:
//Github.com/niklasvh/html2cavas/从官方网站可以看出,它的使用方法非常简单:项目中的要求是将两张图片(1张背景图片+2个生成的二维码)和一个文本(3个商店名称)合成为一张图片。下面的图片应该可以帮助您理解需要合成图片的代码是隐藏的。一个问题是隐藏代码无法生成屏幕截图。当它被隐藏时,不可能对其进行截图。也就是说,我们将生成屏幕截图的区域的样式设置为{position:

html2canvas官网地址:http://html2canvas.hertzen.com/

github地址:https://github.com/niklasvh/html2canvas/

从官网可以看出它的使用方法很容易:

html2canvas如何在元素隐藏的情况下生成截图第1张

项目中的需求是需要将2张图片(1背景图+2生成的二维码)和1段文字(3店铺的名称)整体合成一张图片,看下面的图片应该有助于理解:

html2canvas如何在元素隐藏的情况下生成截图第2张

 动态图如下:

html2canvas如何在元素隐藏的情况下生成截图第3张

我们可以看出,在使用过程中,需要合成图片的那段代码是隐藏的。这时,有个问题就是隐藏的代码是无法生成截图的。最开始是想从js下手,自身能力有限,做不到让它在隐藏的情况下截图。转念可以从css下手。我们要达到的效果无非就是让这一块区域看不见,脱离文档流,不占空间。我相信通过我这样描述,大家可能知道该如何做了。

就是我们把那一块需要生成截图的区域样式设置为{position:fixed;opacity:0;},然后在生成截图之后把这段代码给移除掉。为了用户体验更好,我们可以在生成图片的时候中间加一个过渡的动画。等图片生成完之后将过渡动画移除掉。大概思路就是这样子了,如果我的文字描述还是让你一脸懵逼的话,直接看下面的截图:

整体截图及说明如下:

html2canvas如何在元素隐藏的情况下生成截图第4张

HTML截图如下:

html2canvas如何在元素隐藏的情况下生成截图第5张

主要CSS截图如下:

html2canvas如何在元素隐藏的情况下生成截图第6张

html2canvas如何在元素隐藏的情况下生成截图第7张

主要js代码如下:

html2canvas如何在元素隐藏的情况下生成截图第8张

把a链接加一个download的属性就可以实现点击直接下载该图片了。

 html2canvas如何在元素隐藏的情况下生成截图第9张

给能看到结尾的你点个赞。在写的过程中,感觉都不知道自己要如何把事情给描述清楚明白。。。要说的就这些了~希望能帮到各位看官~~如有疑问欢迎留言,若有更好的方法,希望各位不吝赐教哇~~

免责声明:文章转载自《html2canvas如何在元素隐藏的情况下生成截图》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Unity3D实践系列01,创建项目面试官再问我如何保证 RocketMQ 不丢失消息,这回我笑了!下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

HTTP之为什么存在post,get,put,delete等多种类型请求(RESTful风格介绍)

一、HTTP中定义了以下几种请求方法: 1、GET;2、POST;3、PUT;4、DELETE;5、HEAD;6、TRACE;7、OPTIONS; 二、各个方法介绍: 1、GET方法:对这个资源的查操作。 2、DELETE方法:对这个资源的删操作。但要注意:客户端无法保证删除操作一定会被执行,因为HTTP规范允许服务器在不通知客 户端的情况下撤销请求。 3...

中文前端UI框架Kit(十三)使用RequireJs托管你的类库和js代码

号外:kitjs官方讨论QQ群建立了,QQ群号88093625,欢迎大家加入,讨论前端相关话题 kit内置支持requireJs托管,可以使用requireJs加载和管理KitJs框架内的所有组件和类库 最近园子里有很多讨论requireJs(http://requirejs.org/)的兄弟,requireJs托管js代码的好处有 1.通过闭包提供了一个...

Unity3D ZFBrowser (EmbeddedBrowser) 插件嵌入网页无法输入中文问题

  网页嵌入插件最好的应该就是ZFBrowser了, 可是使用起来也是问题多多, 现在最要命的是网页输入不能打中文, 作者也没打算接入IME, 只能自己想办法了...   搞了半天只想到一个办法, 就是通过Unity的IME去触发中文输入, 然后传入网页, 也就是说做一个透明的 InputField 盖住网页的输入文本框, 然后在 Update 或是 on...

vs2010(vs2012)好用的扩展插件介绍

  一直以来只使用番茄vs助手(https://www.wholetomato.com/downloads/default.asp)辅助写代码,也都忘了是谁介绍的,不过确实好用。 相比原始的vs,它提供了很多改进功能。例如,重命名变量,高亮宏与自定义类型,查找引用,智能代码提示等。   因为一直以来用着没有觉得不爽的地方,所以对于vs的其它插件都没做研究。...

AVD模拟器怎么配置上网

转自:http://blog.csdn.net/you_jinjin/article/details/7228303 方法一 首先,Windows下,配置Adroid环境变量(Win7为例) 1、桌面右键——》我的电脑——》高级系统设置 2、高级——》环境变量——》系统变量——》Path 3、添加Android SDK目录到系统变量Path中,如下图:...

js 调用微信浏览器内置方法,启动支付

$.post("{php echo app_url('pay/cash')}",{orderno:orderno,paytype:paytype},function(m){ //todo: 跳转到微信支付,获取支付的相关信息 if(!m.errno){...