https://try.fishqc.com/Activity/constellation ---成品

电脑上录的gif

有借鉴的链接,很多,下面这个还不错先别看,尊重下我先~~~

https://juejin.im/post/5a17c5e26fb9a04527254689

需求:

点击那个长按保存的按钮,将上方的测试报告保存到手机相册~

第一步:

如何将html转成图片?

a.先随便下载一个到一个文件夹里面 http://html2canvas.hertzen.com/

npm install --save html2canvas

然后在把这个html2canvas.min.js放到你的项目里面



b.开始转化

                   <div class="button7" style="padding: 0 3%;">
<div id="saveThePic">
<div>
<a href="javascript:;">
<img src="/img/star/resultSave.png" alt="" id="other" style="width:100%" id="getWidth">
</a>
</div>
<div id="test">
<div>
<a href="javascript:;">
<img src="/img/star/resultSave.png" alt="" style="width:100%">
</a>
</div>
<div class="button10">
<a href="javascript:;">
<span class="authorTitle" style="color: #10302c;">{{@getUserName}}的脱单幸运物</span>
</a>
</div>
<div class="button15">
<a href="javascript:;">
<span class="authorTitle15">{{@getProductName}}</span>
</a>
</div>
<div class="button13">
<a href="javascript:;">
<img ms-attr="{src:@getProductImg}" alt="" class="indexTitle indexTitleGetPic" >
</a>
</div>
<div class="button11">
<a href="javascript:;">
<span class="feelingExplain" >{{@getUserName}}{{@getContentInsert}}</span>
</a>
</div>
<div class="button12">
<a href="javascript:;">
<span class="feelingExplain" >{{@getStarInsert}}</span>
</a>
</div>
<div class="button14">
<a href="" href="javascript:;">
<img src="/img/star/code.png" alt="" class="indexTitle indexTitleGetCode" >
</a>
</div>
</div>
</div>
</div>
var getheight=$('#getWidth').height()//这里我是将那张需要保存的所有元素里面的背景图.
window.onload=function(getheight){ //这里的转化我是进入页面加载所有的完了就开始转,其实应该做一个load更好~
takeScreenshot("saveThePic","filename.png",'other','test',getheight)//saveThePic是保存的图,这里要写一个下载的图片后缀哦/other是这个saveThePic下面的图/test是这个需要转成图片的代码子元素
}
function takeScreenshot(creatId,filename,otherId,testid,getheight) {
html2canvas(document.getElementById(creatId)).then(function(canvas) {
var imgUri = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); // 获取生成的图片的url  
var saveLink = document.createElement( 'a');
var other=document.getElementById(otherId)
$('#'+testid).hide()
$('#'+otherId).show()
// $('#'+creatId).css("height", getheight+'px')
other.src=imgUri;
saveLink.click();
})
}

解释一下html吧.这里需要注意的就是resultSave.png是一张背景图,然后背景图上面定位了一下文字图片,二维码等等,这个二维码也是我用软件直接转成的图片导进来的.

我是等cavans的图片转化成功之后,将所有要转化的图片隐藏(对应id为test),再之前我会先获取resultSave.png的高度,把他的高度赋给saveThePic的高度.转化后的img一定要写高度

还有就是在pc端确实可以进行图片下载,但是在手机端不会点击一个按钮自动保存的,我看了一篇文章说,把那张转化要的图浮在button上,然后透明度opacity设为0,但是还是在手机上会有点问题,所以我还觉得用户自己保存图片比较好~

试了很久,觉得现在的实现其实还可以,你也可以把这个效果图给你们产品看,早日改需求吧~~~

如果硬是要实现,可以 考虑,先直接渲染,然后定位到按钮那里长按保存试试,因为刚开始我是试的点击再长按 ~~~加油~

七夕快乐,注意保护身体健康哦,乖~

html转图片/html2canvas的使用/星座测试/类似于损友圈的活动的更多相关文章

  1. Android 调用系统分享文字、图片、文件,可直达微信、朋友圈、QQ、QQ空间、微博

    原文:Android 调用系统分享文字.图片.文件,可直达微信.朋友圈.QQ.QQ空间.微博 兼容SDK 18以上的系统,直接调用系统分享功能,分享文本.图片.文件到第三方APP,如:微信.QQ.微博 ...

  2. 网页转图片--- html2canvas截图

    最近有个做在线名片(可保存图片至本地)的任务,特意研究了一下图片生成,也踩了几个坑.特此总结一下,顺便分享一下demo: 链接:https://pan.baidu.com/s/1o98UBJO 密码: ...

  3. Lodop导出图片和打印机无关,测试是否有关

    Lodop导出的图片,既可以在预览界面另存为,也可以用语句导出.语句导出,可查看本博客的相关博文:Lodop导出图片,导出单页内容的图片 预览的时候,由于选择的打印机不同,而真实的打印机可能有不同的可 ...

  4. Js 之将html转为图片html2canvas

    一.效果图 二.代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  5. php图片防盗链的小测试

    test.php <?php $txt = "http://hiphotos.baidu.com/stupidet/pic/item/4f1b8cfb4c33b7254e4aea69. ...

  6. 把html页面转化成图片——html2canvas

    test.html <div class="fx_zhezhao"></div> <div class="myImg"> & ...

  7. JMeter AI图片识别接口并发量测试

    由于临时接到一个性能测试任务,测试8个独立接口在实验室环境的TPS.响应时间以及服务器性能监控如CPU.内存.IO等,没有明确具体的响应时间与并发数,需求较模糊. 1.软件.硬件环境信息:JMeter ...

  8. Png图片的透明部分穿透测试

           private void Window_MouseMove(object sender, MouseEventArgs e){ NavBtnList.Clear(); Point mou ...

  9. 使用 WinAFL 图片解析软件进行模糊测试 - FreeImage 图片解析库

    看雪链接:https://bbs.pediy.com/thread-255162.htm

随机推荐

  1. MySQL连接使用

    在mysql查询中,我们会通过排序,分组等在一张表中读取数据,这是比较简单的,但是在真正的应用中经常需要从多个数据表中读取数据.下面就为大家介绍这种方式,链接查询join. INNER JOIN(内连 ...

  2. 启动Nginx服务失败:Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

    首次接触nginx,安装完使用命令 service nignx restart  后,出现这个错误,并按照提示给出的命令查看错误详情  systemctl status nginx.service   ...

  3. leetcode-45.跳跃游戏II(hard)

    给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: [2,3,1,1,4]输出 ...

  4. expect脚本远程登录、远程执行命令和脚本传参简单用法

    expect介绍: 最近想写一个自动化安装脚本,涉及到远程登录.分发文件包.远程执行命令等,其中少不了来回输入登录密码,交互式输入命令等,这样就大大降低了效率,那么有什么方法能解决呢?不妨试试expe ...

  5. python Linux 环境 (版本隔离工具)

    python Linux 环境 (版本隔离工具) 首先新建用户,养成良好习惯useradd python 1.安装pyenv GitHub官网:https://github.com/pyenv/pye ...

  6. svn忘记密码怎么办?如何获取svn账号和密码?

    SVN作为一种开放源代码的集中式版本控制系统,一直以来都深受所有公司的喜爱.伴随着它使用范围的广泛,一系列问题也随之接踵而至. 我们今天就来谈谈比较常见的但一般除了一个人干着急没办法解决的问题,那就是 ...

  7. React官方中文文档【安装】

    https://reactjs.org/docs/getting-started.html  //React官方文档地址 1.入门 此页面是React文档和相关资源的概述. React是一个用于构建用 ...

  8. 基于Java的支持可变QPS的http负载生成器,提供交互界面和RMI接口

    Load generator The load generator is a Java maven project which is implemented using httpclient+thre ...

  9. k8s 证书之ca-csr.json,ca-config.json

    这是后面生成的所有证书的基础. 但如果是公司内使用,使用基于这些证书生成的ca, 在保证安全性的情况下,可以更方便的部署. ca-csr.json { "CN": "ku ...

  10. ArcGIS API for JS 4.x 离线部署(https)

    在离线部署查资料的过程中,基本全部都是部署在“Default Web Site”下面,部署在这个下面的默认是 http 方式请求的.并且不能修改. 但是系统中请求的都是 https,这样导致请求不到J ...