getElementByIDを使用して、特定の要素のみをキャンバスに印刷することは可能ですか?
最新バージョンを使用すると、document.bodyでのみ機能します
$("#myButton").click(function () {
html2canvas(document.getElementById('myTable'), {
allowTaint: true,
imageTimeout: 15000,
logging: true,
useCORS: true
}).then(function (canvas) {
document.body.appendChild(canvas);
const b64 = canvas.toDataURL("image/png").replace(/.*,/, '');
console.log("data:image/png;base64, " + b64)
});
});
たぶんあなたの要素は上下にスクロールされます。 scrollX:-window.scrollXとscrollY:-window.scrollYを追加してみてください
$("#myButton").click(function () {
html2canvas(document.getElementById('myTable'), {
allowTaint: true,
imageTimeout: 15000,
logging: true,
useCORS: true,
scrollX: -window.scrollX,
scrollY: -window.scrollY
}).then(function (canvas) {
document.body.appendChild(canvas);
const b64 = canvas.toDataURL("image/png").replace(/.*,/, '');
console.log("data:image/png;base64, " + b64)
});
});
完璧です、それは問題のおかげで解決しました。
スクリーンショット中に頻繁にスクロールするので、これら2つのプロパティをメインの例に書き込んでください。 上記のコメントを参照してくださいhttps://github.com/niklasvh/html2canvas/issues/2368#issuecomment-701920277
scrollX: -window.scrollX,
scrollY: -window.scrollY
最も参考になるコメント
たぶんあなたの要素は上下にスクロールされます。 scrollX:-window.scrollXとscrollY:-window.scrollYを追加してみてください