html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片


Posted in Javascript onJanuary 12, 2020

如何使用JS截取HTML页面为图片呢,下面为大家介绍一款JS截图插件html2canvas.js

html2canvas.js 能够实现在用户浏览器端直接对整个或部分页面进行截屏。

html2canvas.js可以将当页面渲染成一个Canvas图片,通过读取DOM并将不同的样式应用到这些元素上实现。

它不需要来自服务器任何渲染,整张图片都是在客户端浏览器创建。当

浏览器不支持Canvas时,将采用Flashcanvas或ExplorerCanvas技术代替实现。

以下浏览器能够很好的支持该脚本:Firefox 3.5+, Google Chrome, Opera新的版本, IE9以上的浏览器。

基本语法

html2canvas(element, options);
html2canvas(document.body, {
 onrendered: function(canvas) {
  var url = canvas.toDataURL();//图片地址
  document.body.appendChild(canvas);
 },
 width: 300,
 height: 300

或者使用ES6的promise

//两个参数:所需要截图的元素id,截图后要执行的函数, canvas为截图后返回的最后一个canvas html2canvas(document.getElementById('id')).then(function(canvas) {document.body.appendChild(canvas);});

html2canvas基本参数说明

参数名称 类型 默认值 描述
allowTaint boolean false Whether to allow cross-origin images to taint the canvas---允许跨域
background string #fff Canvas background color, if none is specified in DOM. Set undefined for transparent---canvas的背景颜色,如果没有设定默认透明
height number null Define the heigt of the canvas in pixels. If null, renders with full height of the window.---canvas高度设定
letterRendering boolean false Whether to render each letter seperately. Necessary if letter-spacing is used.---在设置了字间距的时候有用
logging boolean false Whether to log events in the console.---在console.log()中输出信息
proxy string undefined Url to the proxy which is to be used for loading cross-origin images. If left empty, cross-origin images won't be loaded.---代理地址
taintTest boolean true Whether to test each image if it taints the canvas before drawing them---是否在渲染前测试图片
timeout number 0 Timeout for loading images, in milliseconds. Setting it to 0 will result in no timeout.---图片加载延迟,默认延迟为0,单位毫秒
width number null Define the width of the canvas in pixels. If null, renders with full width of the window.---canvas宽度
useCORS boolean false Whether to attempt to load cross-origin images as CORS served, before reverting back to proxy--这个我也不知道是干嘛的

例子

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>html2canvas example</title>
  <script type="text/javascript" src="html2canvas.js"></script>
</head>
<script type="text/javascript">
function takeScreenshot() {
 console.log('test');
  html2canvas(document.getElementById('view'), {
    onrendered: function(canvas) {
      document.body.appendChild(canvas);
    },
   // width: 300,
   // height: 300
  });
}
</script>
<body>
  <div id="view" style="background:url(test.jpg) 50%; width: 700px; height: 500px;">
    <input type="button" value="截图" onclick="takeScreenshot()">
  </div>
</body>

</html>

效果图如下:

html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片

截图效果如下:

html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片

最后附上html2canvas官网链接

官网

Github

Javascript 相关文章推荐
select标记美化--JS式插件、后期加载
Apr 01 Javascript
javascript中动态加载js文件多种解决办法总结
Nov 15 Javascript
一个js导致的jquery失效问题的解决方法
Nov 27 Javascript
JavaScript将取代AppleScript?
Sep 18 Javascript
JQ技术实现注册页面带有校验密码强度
Jul 27 Javascript
学习JavaScript鼠标响应事件
Dec 25 Javascript
jquery ztree实现树的搜索功能
Feb 25 Javascript
JavaScript Uploadify文件上传实例
Feb 28 Javascript
解决vue.js 数据渲染成功仍报错的问题
Aug 25 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
Jul 19 Javascript
原生JS实现天气预报
Jun 16 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 jQuery
ES2020 新特性(种草)
Jan 12 #Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 #Javascript
es6 for循环中let和var区别详解
Jan 12 #Javascript
js 计数排序的实现示例(升级版)
Jan 12 #Javascript
JS实现动态无缝轮播
Jan 11 #Javascript
原生js实现无缝轮播图
Jan 11 #Javascript
JS实现轮播图效果
Jan 11 #Javascript
You might like
怎样在UNIX系统下安装php3
2006/10/09 PHP
PHP5.3的垃圾回收机制(动态存储分配方案)深入理解
2012/12/10 PHP
Joomla开启SEF的方法
2016/05/04 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
PHP Trait功能与用法实例分析
2020/06/03 PHP
jQuery点击tr实现checkbox选中的方法
2013/03/19 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
2015/08/23 Javascript
JS Array.slice 截取数组的实现方法
2016/01/02 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
基于vue.js实现的分页
2018/03/13 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
JavaScript实现随机点名器
2020/03/25 Javascript
javascript实现搜索筛选功能实例代码
2020/11/12 Javascript
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
python中利用Future对象回调别的函数示例代码
2017/09/07 Python
Python实现pdf文档转txt的方法示例
2018/01/19 Python
python学习之hook钩子的原理和使用
2018/10/25 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
详解Python 切片语法
2019/06/10 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
linux 下selenium chrome使用详解
2020/04/02 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
Saks Fifth Avenue澳洲/亚太地区:萨克斯第五大道精品百货店
2019/06/09 全球购物
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
电子信息工程专业推荐信
2014/02/14 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
消防演习通知
2015/04/25 职场文书
Mysql Online DDL的使用详解
2021/05/20 MySQL
Nginx的基本概念和原理
2022/03/21 Servers