Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Html2Canvas中呈现时,页面会滚动到顶部_Javascript_Css_Canvas_Html2canvas - Fatal编程技术网

Javascript 在Html2Canvas中呈现时,页面会滚动到顶部

Javascript 在Html2Canvas中呈现时,页面会滚动到顶部,javascript,css,canvas,html2canvas,Javascript,Css,Canvas,Html2canvas,我正在使用html2canvas库,使用以下代码: html2canvas(document.body, { onrendered: function(canvas) { document.body.appendChild(canvas); } }); 激发onrendered时,页面将自动滚动到顶部。我们是否可以保持滚动位置而不被自动带到页面顶部?我查看了html2canvas.js并看到了以下行: _html2canvas.Parse = function (ima

我正在使用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)
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);
       }
    });
 });

您应该能够调整相对于当前页面偏移量的滚动位置,请尝试以下操作

html2canvas(document.body, { scrollY: (window.pageYOffset * -1) })

在这里的演示页面上似乎发生了同样的事情:在调用html2canvas并将其设置回onrendered处理程序之前,您是否能够存储scrolltop?这太棒了,我在发布我的赏金后也发现了这一行。只要我能奖励它,它就是你的了:)。谢谢你的帮助。我很高兴能帮上忙。谢谢完美的非常感谢。