html2canvas截图空白问题的解决


Posted in HTML / CSS onMarch 24, 2020

最近在项目中遇到一个需求,需要提供网页截图的功能。百度下发现html2canvas很好用。那就试试吧。

资源下载地址

插件下载地址:html2canvas下载地址

使用方式

项目使用的react组件开发方式。参照官方的说明文档getting-started.md,按照以下步骤进行:

1、使用以下命令安装

npm install html2canvas --save

2、在文件中引入html2canvas

import html2canvas from 'html2canvas';

3、文件中的使用

html2canvas(document.body).then(function(canvas) {
document.body.appendChild(canvas);
});

遇到的问题

按照这个方式使用,页面没有滚动条还行,有滚动条时出现大片空白。

错误截图如下:

html2canvas截图空白问题的解决

解决方案

仔细看了一下configuration.md和网友的分析,最终解决。代码片段如下

html2canvas截图空白问题的解决

上一张正确的截图如下:

html2canvas截图空白问题的解决

代码中的配置项说明

1、截图产生空白是因为容器高度设置的问题,设置windowHeight的高度等于页面包含滚动条的高度即可获取滚动条中的内容。这一条就可以解决空白的问题。
2、设置width、height属性的原因是,我们在页面中截图显示的区域宽度和高度是固定的,就是当前屏幕的可见区域。
3、设置x、y坐标的原因是由于页面在有滚动条的时候,需要指定截图的起始位置。本项目中x轴方向不存在滚动条,所以设置为零;y方向有滚动条,所以需要获取一下当前方向的滚动坐标。
4、一般网页中会有图片,图片中有链接地址时,设置useCORS属性可保证图片的加载。

到此这篇关于html2canvas截图空白问题的解决的文章就介绍到这了,更多相关html2canvas截图空白内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
CSS3属性box-sizing使用指南
Dec 09 HTML / CSS
详解CSS3中使用gradient实现渐变效果的方法
Aug 18 HTML / CSS
CSS3实现内凹圆角的实例代码
May 04 HTML / CSS
使用CSS3来代替JS实现交互
Aug 10 HTML / CSS
css3一个简易的 LED 数字时钟实现方法
Jan 15 HTML / CSS
html5理解head_动力节点Java学院整理
Jul 13 HTML / CSS
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
Jan 31 HTML / CSS
HTML5 CSS3实现一个精美VCD包装盒个性幻灯片案例
Jun 16 HTML / CSS
HTML5触摸事件演化tap事件介绍
Mar 25 HTML / CSS
Html5元素及基本语法详解
Aug 02 HTML / CSS
Html5之自定义属性(data-,dataset)
Nov 19 HTML / CSS
h5移动端调用支付宝、微信支付的实现
Jun 08 HTML / CSS
html5视频常用API接口的实战示例
Mar 20 #HTML / CSS
Html5页面上如何禁止手机虚拟键盘弹出
Mar 19 #HTML / CSS
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
Mar 18 #HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
Mar 17 #HTML / CSS
canvas实现手机的手势解锁的步骤详细
Mar 16 #HTML / CSS
HTML利用九宫格原理进行网页布局
Mar 13 #HTML / CSS
html5默认气泡修改的代码详解
Mar 13 #HTML / CSS
You might like
php smarty函数扩展
2010/03/15 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
详解WordPress开发中get_header()获取头部函数的用法
2016/01/08 PHP
thinkPHP多表查询及分页功能实现方法示例
2017/07/03 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
js出生日期 年月日级联菜单示例代码
2014/01/10 Javascript
使用AngularJS制作一个简单的RSS阅读器的教程
2015/06/18 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
深入了解JavaScript 防抖和节流
2019/09/12 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
python中使用urllib2伪造HTTP报头的2个方法
2014/07/07 Python
Python中replace方法实例分析
2014/08/20 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
异常和异常类的概念
2014/09/12 面试题
应届生体育教师自荐信
2013/10/03 职场文书
大学生求职计划书
2014/04/30 职场文书
捐献物资倡议书范文
2014/05/19 职场文书
个人承诺书怎么写
2014/05/24 职场文书
公民代理授权委托书
2014/09/24 职场文书
2015年师德师风承诺书
2015/01/22 职场文书
刑事案件上诉状
2015/05/23 职场文书
校运会广播稿
2015/08/19 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
vue3语法糖内的defineProps及defineEmits
2022/04/14 Vue.js