移动web前端常见填坑(待完善)

填坑记之合成海报:

  功能技术:http://html2canvas.hertzen.com

  问题描述:合成模糊、合成区域内容错位,合成不完整,合成边缘白条等。

  解决方案:如有页面布局正常合成错位的,可以检查元素是否使用了transform属性,尝试不用这个属性再去合成。

  图片缺失和模糊参考如下代码,合成前递归加载图片,并在参数处设定倍数。

  

//准备海报
function poster(){
	
	var posterImgList = [
		"h5/img/poster/1.jpg",
		"h5/img/poster/2.png",
		"h5/img/poster/3.png",
		"h5/img/poster/4.png",
		"h5/img/poster/5.png",
		"h5/img/poster/6.png",
		"h5/img/poster/7.png",
		"h5/img/poster/8.png",
		"h5/img/poster/9.png"

	];
	
	superLoadImg(posterImgList,0);
	
}


 //递归load图片
 function superLoadImg(imgList,imgIndex){
	 
	 if(imgIndex < imgList.length){
		 var imgObj = new Image();
		 imgObj.src = imgList[imgIndex];
		 imgObj.onload = function () {
			 console.log("加载图片"+imgIndex);
			 if(imgIndex == imgList.length- 1){
				 finalCompoundPoster();
			 }else{
				 imgIndex=imgIndex+1;
				 superLoadImg(imgList,imgIndex);
			 }
	     }
	 }
	 
 }
//合成海报最终
function finalCompoundPoster(){
    setTimeout(function(){
             var opt = {
                        scale:2,
                        width:$(‘#poster‘).width() - 1,//设置canvas尺寸与所截图尺寸相同,防止白边
                        height:$(‘#poster‘).height() - 1,//防止白边
                    }
                    html2canvas(document.querySelector("#poster"),opt).then(function(canvas) {
                        
                        try{
                            canvas.style.width="100%";
                            canvas.style.height="100%";
                            var saveImage = canvas.toDataURL(‘image/jpeg‘);
    
                            $(‘#posterImg‘).attr("src",saveImage);

                        
                        }catch(err){
                            alert(err);
                        }
                    })
    },200);
}

 

移动web前端常见填坑(待完善)

上一篇:pm2部署nodejs项目 pm2: command not found


下一篇:asp.net core 读取Appsettings.json 配置文件