Ответ 1
Я просмотрел html2canvas.js и увидел следующую строку:
_html2canvas.Parse = function (images, options) {
window.scroll(0,0);
После комментирования window.scroll(0,0)
out, он работал отлично для меня при локальном тестировании. Похоже, это поведение было задумано автором.
Конечно, вы можете сохранить текущую позицию прокрутки в переменной при запуске кода. Способ, которым вы можете это сделать, зависит от того, как вы выполняете 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);
}
});
});