作者:@wucj shouzijiang
在 H5 的营销活动中,经常生成一张图片让用户分享或者保存,这时候处理方案有两种。
一种是让后端生成图片,返回一个图片地址给前端展示
一种是前端自主合并生成图片展示,文中主要说明这个方案
demo
<!-- 生成后存放的 IMG-->
<img src=""id="saveImages"alt="">
<a href="javascript:;" class="create"> 生成海报 </a>
<!-- 用来生成的 HTML-->
<div id="saveContent" class="saveContent">
<img src="">
<div class="name pa"></div>
<div class="msg pa"></div>
</div>
<style>
#saveContent{width: 7.5rem; height: 12.27rem; position: relative;}
#saveContent img{width: 100%;}
#saveContent .name{color: #7c5234;font-size: .3rem;top: 6.55rem;line-height: .6rem;text-align: center;left: 0;right: 0;}
#saveContent .msg{color: #7c5234;font-size: .24rem;top: 7.35rem;text-align: center;left: 0;right: 0;}
#saveContent .msg span{color: #cf5350; font-size: .36rem;}
</style>
<!-- 使用最新版本的 html2canvas-->
<!-- 官网 https://html2canvas.hertzen.com/-->
<script src="//html2canvas.hertzen.com/dist/html2canvas.min.js"></script>
<script src="//static.leiting.com/lib/jquery-1.9.0.min.js"></script>
<script>
// 生成
$(function(){
var isCreate=false;
$('a.create').on('click',function(){
isCreate=true;
$('#saveContent img').attr('src','//activity.leiting.com/wd/201904/data/images/pop/1.jpg');
$('#saveContent .name').html('aaaaaa');
$('#saveContent .msg').html('bbbbbbbbbb');
html2canvas(document.getElementById('saveContent'), {onrendered: function(ca) {$('#saveImages').attr('src',ca.toDataURL('image/jpeg'));
}
});
})
})
</script>