做者:@wucj shouzijiangjavascript
在H5的營銷活動中,常常生成一張圖片讓用戶分享或者保存,這時候處理方案有兩種。
一種是讓後端生成圖片,返回一個圖片地址給前端展現
一種是前端自主合併生成圖片展現,文中主要說明這個方案html
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>