html转图片/html2canvas的使用/星座测试/类似于损友圈的活动
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的使用/星座测试/类似于损友圈的活动的更多相关文章
- Android 调用系统分享文字、图片、文件,可直达微信、朋友圈、QQ、QQ空间、微博
原文:Android 调用系统分享文字.图片.文件,可直达微信.朋友圈.QQ.QQ空间.微博 兼容SDK 18以上的系统,直接调用系统分享功能,分享文本.图片.文件到第三方APP,如:微信.QQ.微博 ...
- 网页转图片--- html2canvas截图
最近有个做在线名片(可保存图片至本地)的任务,特意研究了一下图片生成,也踩了几个坑.特此总结一下,顺便分享一下demo: 链接:https://pan.baidu.com/s/1o98UBJO 密码: ...
- Lodop导出图片和打印机无关,测试是否有关
Lodop导出的图片,既可以在预览界面另存为,也可以用语句导出.语句导出,可查看本博客的相关博文:Lodop导出图片,导出单页内容的图片 预览的时候,由于选择的打印机不同,而真实的打印机可能有不同的可 ...
- Js 之将html转为图片html2canvas
一.效果图 二.代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- php图片防盗链的小测试
test.php <?php $txt = "http://hiphotos.baidu.com/stupidet/pic/item/4f1b8cfb4c33b7254e4aea69. ...
- 把html页面转化成图片——html2canvas
test.html <div class="fx_zhezhao"></div> <div class="myImg"> & ...
- JMeter AI图片识别接口并发量测试
由于临时接到一个性能测试任务,测试8个独立接口在实验室环境的TPS.响应时间以及服务器性能监控如CPU.内存.IO等,没有明确具体的响应时间与并发数,需求较模糊. 1.软件.硬件环境信息:JMeter ...
- Png图片的透明部分穿透测试
private void Window_MouseMove(object sender, MouseEventArgs e){ NavBtnList.Clear(); Point mou ...
- 使用 WinAFL 图片解析软件进行模糊测试 - FreeImage 图片解析库
看雪链接:https://bbs.pediy.com/thread-255162.htm
随机推荐
- vue项目在ie中空白问题
vue项目在ie浏览器中出现空白,f12打开后发现在body下面就只有一个div盒子,因此我们可以猜测就是js没有引入导致的,所有网上看了一些相关的才知道,在ie中无法解析es6或者版本更高的语法,所 ...
- 忽略警告@SuppressWarnings的用法
@SuppressWarnings注解用法 @SuppressWarnings注解主要用在取消一些编译器产生的警告对代码左侧行列的遮挡,有时候这会挡住我们断点调试时打的断点. 我们可以在方法上加上@S ...
- android RecyclerView的瀑布流布局案例
1.先创建 activity_water_fall.xml 和 activity_water_fall_item.xml <?xml version="1.0" encodi ...
- iview Carousel 轮播图自适应宽高;iview 轮播图 图片重叠问题;iview tabs 高度互相影响问题;vue this问题;
最终效果图: 一.轮播图中图片自适应宽高: <Carousel loop v-bind:height="imgHeight+'px'" v-model="caro ...
- 常用的js加密
https://github.com/hellobajie/AES-of-JavaScript 此为js的 AES加密方式,两个加密文档,可当做扣js必备
- 百度云服务器CentOs6.8安装gnome图形化界面并通过VNC远程访问
一:安装gnome桌面 利用xshell 登陆上远程主机 依次执行下列命令: [root@lys]#yum groupinstall -y "X Window System" [r ...
- js对属性的操作
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- zabbix-web切换为nginx及https
目录 zabbix-web切换为nginx及https 1.背景和环境 2.安装nginx 2.1.编译参数 2.2.修改配置文件并配置https 2.3.配置nginx为系统服务 3.安装php 3 ...
- Proxmox 命令使用方法
proxmox 虚拟机使用命令介绍 qm <command> <vmid> [OPTIONS] ...
- linux的vim基本使用
转自:https://www.cnblogs.com/qq631243523/p/10191714.html 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在 ...