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感应鼠标的背景闪烁和图片缩放动画效果
May 14 HTML / CSS
详解CSS3的box-shadow属性制作边框阴影效果的方法
May 10 HTML / CSS
CSS3 创建网页动画实现弹跳球动效果
Oct 30 HTML / CSS
CSS 说明横向进度条最后显示文字的实现代码
Nov 10 HTML / CSS
HTML5 Canvas标签使用收录
Jul 07 HTML / CSS
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
Nov 07 HTML / CSS
HTML5本地存储之IndexedDB
Jun 16 HTML / CSS
HTML5离线应用与客户端存储的实现
May 03 HTML / CSS
HTML5 Canvas实现放大镜效果示例
Mar 25 HTML / CSS
CSS3鼠标悬浮过渡缩放效果
Apr 17 HTML / CSS
分享几个实用的CSS代码块
Jun 10 HTML / CSS
CSS元素定位之通过元素的标签或者元素的id、class属性定位详解
Sep 23 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
使用Yii2实现主从数据库设置
2016/11/20 PHP
php如何利用pecl安装mongodb扩展详解
2019/01/09 PHP
Javascript的getYear、getFullYear、getUTCFullYear异同分享
2011/11/30 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
jQuery事件绑定与解除绑定实现方法
2015/04/15 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
jquery插件EasyUI中form表单提交实例分享
2016/01/11 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
ajax图片上传,图片异步上传,更新实例
2016/12/30 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
python 定义给定初值或长度的list方法
2018/06/23 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
python异步编程 使用yield from过程解析
2019/09/25 Python
Django 批量插入数据的实现方法
2020/01/12 Python
python新手学习可变和不可变对象
2020/06/11 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
详解H5本地储存Web Storage
2017/07/03 HTML / CSS
美国正版电视节目和电影在线观看:Hulu
2018/05/24 全球购物
Sneaker Studio罗马尼亚网站:购买运动鞋
2018/11/04 全球购物
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
师范应届毕业生自荐信
2013/11/18 职场文书
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
电气自动化专业职业规划范文
2014/02/16 职场文书
寒暑假实习证明书模板
2014/11/29 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
《棉鞋里的阳光》教学反思
2016/02/20 职场文书
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python