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 transform 属性来变换背景图的方法
May 07 HTML / CSS
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
Nov 05 HTML / CSS
使用CSS3设计地图上的雷达定位提示效果
Apr 05 HTML / CSS
使用CSS3编写类似iOS中的复选框及带开关的按钮
Apr 11 HTML / CSS
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
Jun 02 HTML / CSS
使用HTML5 IndexDB存储图像和文件的示例
Nov 05 HTML / CSS
HTML5 b和i标记将被赋予真正的语义
Jul 16 HTML / CSS
HTML5 本地存储之如果没有数据库究竟会怎样
Apr 25 HTML / CSS
基于HTML5 Canvas:字符串,路径,背景,图片的详解
May 09 HTML / CSS
深入解析HTML5 Canvas控制图形矩阵变换的方法
Mar 24 HTML / CSS
浅谈HTML5 & CSS3的新交互特性
Jul 19 HTML / CSS
html5 canvas合成海报所遇问题及解决方案总结
Aug 03 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安装为Apache DSO
2006/10/09 PHP
一个程序下载的管理程序(四)
2006/10/09 PHP
谈谈PHP语法(2)
2006/10/09 PHP
完美解决thinkphp验证码出错无法显示的方法
2014/12/09 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
php curl批处理实现可控并发异步操作示例
2018/05/09 PHP
JS实现文字放大效果的方法
2015/03/03 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
javascript基础知识
2016/06/07 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
jQuery实现文档树效果
2017/02/20 Javascript
jQuery插件echarts实现的多折线图效果示例【附demo源码下载】
2017/03/04 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
微信小程序自定义toast弹窗效果的实现代码
2018/11/15 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
Antd的table组件表格的序号自增操作
2020/10/27 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
python读取浮点数和读取文本文件示例
2014/05/06 Python
Python实现优先级队列结构的方法详解
2016/06/02 Python
python-str,list,set间的转换实例
2018/06/27 Python
Django REST framwork的权限验证实例
2020/04/02 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
金蝶的一道SQL笔试题
2012/12/18 面试题
几个常见的消息中间件(MOM)
2014/01/08 面试题
大学辅导员事迹材料
2014/02/05 职场文书
军训自我鉴定范文
2014/02/13 职场文书
安全生产承诺书
2014/03/26 职场文书
Python基础教程,Python入门教程(超详细)
2021/06/24 Python