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 相关文章推荐
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
Feb 04 HTML / CSS
用纯css3实现的图片放大镜特效效果非常不错
Sep 02 HTML / CSS
css3弹性盒子flex实现三栏布局的实现
Nov 12 HTML / CSS
html5 canvas绘制放射性渐变色效果
Jan 04 HTML / CSS
html5 兼容IE6结构的实现代码
May 14 HTML / CSS
html5构建触屏网站之touch事件介绍
Jan 07 HTML / CSS
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
Jan 30 HTML / CSS
利用HTML5 Canvas制作一个简单的打飞机游戏
May 11 HTML / CSS
HTML5操作WebSQL数据库的实例代码
Aug 26 HTML / CSS
基于HTML5的WebGL经典3D虚拟机房漫游动画
Nov 15 HTML / CSS
H5页面适配iPhoneX(就是那么简单)
Dec 02 HTML / CSS
使用CSS实现黑白格背景效果
Jun 01 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写的serv-u的web申请账号的程序
2006/10/09 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
php实现上传图片保存到数据库的方法
2015/02/11 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
2018/02/07 PHP
php和html的区别点详细总结
2019/09/24 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
通过示例彻底搞懂js闭包
2017/08/10 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
2019/09/25 Javascript
JS实现纵向轮播图(初级版)
2020/01/18 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
2015/04/25 Python
Python函数中*args和**kwargs来传递变长参数的用法
2016/01/26 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
企业安全生产承诺书
2014/05/22 职场文书
反邪教标语
2014/06/23 职场文书
2015年读书月活动总结
2015/03/26 职场文书
舞蹈社团活动总结
2015/05/07 职场文书
合同审查法律意见书
2015/06/04 职场文书
环保守法证明
2015/06/24 职场文书
python获取对象信息的实例详解
2021/07/07 Python
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android