Vue<解决html2canvas截图不全的问题>

问题截图:
image.png

具体如何生成截图的方法,请参考https://www.jianshu.com/p/e7e3b19cfa21,此处只是解决生成截图时的一些坑。

原因:

我所知道的原因有两点,

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

// 利用 html2canvas 下载 canvas
      setTimeout(() => {
        html2canvas(img, { canvas: canvas }).then(function(canvas) {
          _this.photoUrl = canvas.toDataURL();
        });
      }, 500);

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

      window.pageYOffset = 0;
      document.documentElement.scrollTop = 0
      document.body.scrollTop = 0
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,148评论 1 32
  • 前端目前网上可以查到的主要方案就是,用html2cavans先将页面在canvas中绘制,然后canvas转图片资...
    shonn_zhang阅读 23,541评论 2 4
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,548评论 1 11
  • 令人紧张的期中考试结束了,学校的质量分析会也如约而至。本次学校将质量分析会进行了改革,不仅成绩不够理想的任...
    昵称总重复阅读 388评论 0 2