在做页面生成多张图片的时候出现了问题,页面是全屏的,但是只能生成一张。
之后找到了解决方法。
1.要显示的页面得在可视区域,也就是屏幕内。
<div class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide">
<div class="invite" style="background:url(images/share_bg.png) no-repeat;background-size: 100% 100%;">
<p class="p">
<img src="images/touxiang.png" class="touxiang"/>
</p>
<p class="user">我是湛山</p>
<p class="qrcode"></p>
</div>
</div>
<div class="swiper-slide">
<div class="invite" style="background:url(images/index_bg.jpg) no-repeat;background-size: 100% 100%;">
<p class="p">
<img src="images/touxiang.png" class="touxiang"/>
</p>
<p class="user">我是湛山</p>
<p class="qrcode"></p>
</div>
</div>
<div class="swiper-slide">
<div class="invite" style="background:url(images/user_bg.jpg) no-repeat;background-size: 100% 100%;">
<p class="p">
<img src="images/touxiang.png" class="touxiang"/>
</p>
<p class="user">我是湛山</p>
<p class="qrcode"></p>
</div>
</div>
</div>
<!--<div class="swiper-pagination"></div>-->
</div>
2.可以先复制元素,全部为可视状态,在进行截图(生成图片) 就行
<!--创建出一个一样的element ,全部为可视状态,在进行截图 就行了-->
<div class="copyDom copyDom0">
</div>
<div class="copyDom copyDom1">
</div>
<div class="copyDom copyDom2">
</div>
<script>
//复制邀请的部分,让它在可视去,能生成图片
for(var i=0;i<$('.invite').length;i++){
$(".copyDom"+i).append($(".invite").eq(i).eq(0).clone());
}
// 复制好之后,移除元素
$(".swiper-container").eq(0).remove();
</script>
3.写个方法,循环调用
//调用方法,截图
for(var i=0;i<$('.copyDom').length;i++){
creatImg($('.copyDom').eq(i),i);
console.log()
}
//截图(生成图片)方法
function creatImg(obj,i){
console.log(i)
canvas=false
//创建一个新的canvas
var canvas2 = document.createElem