11

次のコードを使用して、html2canvas ライブラリを使用しています。

html2canvas(document.body, {
   onrendered: function(canvas) {
      document.body.appendChild(canvas);
   }
});

onrendered呼び出されると、ページは自動的に一番上にスクロールされます。スクロール位置を維持し、自動的にページの上部に移動しない方法はありますか?

4

2 に答える 2

23

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);
       }
    });
 });
于 2014-07-29T21:28:44.157 に答える