美文网首页
【解决】html2canvas截图不全的问题

【解决】html2canvas截图不全的问题

作者: 素时年锦 | 来源:发表于2020-06-30 10:54 被阅读0次

    在公司开发中,遇到测试反馈的问题,在用户签约生成图片转发的时候,图片样式戳,截图不全,展示效果如下:


    html2canvas截图不全的图片

    于是采用解决方案2,修复了此问题。

    第一种原因:

    在点击保存图片时,此时要保存的资源较多,造成模块并没有完全加载完毕,就已经生成了截图。
    解决方案:(延迟)

     setTimeout(() => {
            html2canvas(
              document.getElementById('contract-container'), 
              { scale: 1 }
            ).then( canvas => {
              var contractData = canvas.toDataURL("image/jpeg");
            });
      }, 500);
    

    第二种原因:

    滚轮滑动造成的,主要是html2canvas是根据body进行截图,若内容高度高于body时,就会出现这样的问题
    解决方案:(在生成截图前,先把滚动条置顶)

            window.pageYoffset = 0;
            document.documentElement.scrollTop = 0;
            document.body.scrollTop = 0;
            html2canvas(
                document.getElementById('contract-container'), 
                { scale: 1 }
            ).then( canvas => {
                var contractData = canvas.toDataURL("image/jpeg");
            });
    

    相关文章

      网友评论

          本文标题:【解决】html2canvas截图不全的问题

          本文链接:https://www.haomeiwen.com/subject/zbpvehtx.html