次のコードを使用して、html2canvas ライブラリを使用しています。
html2canvas(document.body, {
onrendered: function(canvas) {
document.body.appendChild(canvas);
}
});
がonrendered
呼び出されると、ページは自動的に一番上にスクロールされます。スクロール位置を維持し、自動的にページの上部に移動しない方法はありますか?
次のコードを使用して、html2canvas ライブラリを使用しています。
html2canvas(document.body, {
onrendered: function(canvas) {
document.body.appendChild(canvas);
}
});
がonrendered
呼び出されると、ページは自動的に一番上にスクロールされます。スクロール位置を維持し、自動的にページの上部に移動しない方法はありますか?
html2canvas.js を調べたところ、次の行が見つかりました。
_html2canvas.Parse = function (images, options) {
window.scroll(0,0);
コメントアウトした後window.scroll(0,0)
、ローカルテストでうまくいきました。その振る舞いは作者によって意図されたようです。
もちろん、コードを実行するときに現在のスクロール位置を変数に保存することもできます。その方法は、html2canvas の実行方法によって異なります。デモ ページのようなボタンの場合は、そのボタンにイベント リスナーを追加します。
var scrollPos;
document.querySelector("screenshotButton").addEventListener("click",function() {
scrollPos = document.body.scrollTop;
html2canvas(document.body, {
onrendered: function(canvas) {
document.body.appendChild(canvas);
window.scrollTo(0,scrollPos);
}
});
});