html2canvas.js插件截圖空白問題

發現使用

html2canvas.js插件截圖保存在前端很方便。學習過程中預計問題。
截圖出現空白和截圖不全。
問題原因:
html2canvas.js插件截圖是基於body標籤的,如果body存在滾動條就會出現截圖空白的情況。如何避免:
關鍵點:在截圖前將滾動條位置設置在頂部。截圖時,截圖選擇內容標籤不是body,就將截圖寬度和高度設置為選擇標籤的寬高在截圖。

具體程式碼:
<!-- 海報彈窗 -->
	<div class="dialog flex" id="alert10" style="display:none" >
		<div class="poster_con">   
   
			<div class="poster"  id="contbox">
				<div class="qrcode" id="qrcode">
				
				</div>
			</div> 
    
			<div class="poster_btn"><button id="down">點擊保存圖片分享給好友</button><a id="down1" class="down" href="" download="downImg"   style="display:none"></a></div> 
</div> </div>

  

js程式碼:

  $("#down").click(function(){
        // 截圖前先講滾動條置頂
        $('html,body').animate({'scrollTop':0});
        // document.getElementById("contbox") 需要截圖的是div標籤
        html2canvas(document.getElementById("contbox"),
            {logging:false,
                width:$("#contbox").width(),// 寬設置為div標籤的寬
                height:$("#contbox").height(),// 高設置為div標籤的高
                useCORS:true}).then(function(canvas) {
            //將canvas畫布放大若干倍,然後盛放在較小的容器內,就顯得不模糊了
            var timestamp = Date.parse(new Date());
            //把截取到的圖片替換到a標籤的路徑下載
            $("#down1").attr('href',canvas.toDataURL("image/png"));
            console.log(canvas.toDataURL("image/png"));
            //下載下來的圖片名字
            $("#down1").attr('download',timestamp + '.png') ;
            $("#down1")[0].click();
            //document.body.appendChild(canvas);
        });

    });