// 截圖
screenshot(){
let canvas2 = document.createElement("canvas");
let region = $("#screenshot");//需要截圖的那個div,並且需要加載完
let w = parseInt(region.width());
let h = parseInt(region.height());
//將canvas畫布放大若干倍,然後盛放在較小的容器內,就顯得不模糊了
canvas2.width = w * 2;
canvas2.height = h * 2;
//可以按照自己的需求,對context的參數修改,translate指的是偏移量
let context = canvas2.getContext("2d");
context.scale(2,2);
context.mozImageSmoothingEnabled = false;//消除canvas文字鋸齒,感覺沒啥用
context.webkitImageSmoothingEnabled = false;//消除canvas文字鋸齒,感覺沒啥用
context.msImageSmoothingEnabled = false;//消除canvas文字鋸齒,感覺沒啥用
context.imageSmoothingEnabled = false;//消除canvas文字鋸齒,感覺沒啥用
html2canvas(region, {
canvas: canvas2,
useCORS: true,
logging: true,
taintTest: true,
dpi: window.devicePixelRatio*2,
}).then(canvas => {
let imgUrl = canvas.toDataURL("image/png",1.0);//最終截圖圖片
});
},
這個例子絕對清晰,如果您的截圖還不清晰的話,那就是css3的樣式問題,特別注意,圖片不清晰的話,要使用img標籤,不要用設置背景圖片,高寬度最好不要設置百分比。
有些人截圖不全:那是因爲截圖區域超出可視窗口
有些人截圖樣式不顯示:canvas對於一些css3樣式不識別不能截下來,只能換方式