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 相关文章推荐
File文件控件,选中文件(图片,flash,视频)即立即预览显示
Apr 09 Javascript
javascript开发技术大全-第1章javascript概述
Jul 03 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 Javascript
JavaScript异步编程Promise模式的6个特性
Apr 03 Javascript
JQuery 使用attr方法实现下拉列表选中
Oct 13 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
Jan 04 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
Sep 16 Javascript
vue-quill-editor富文本编辑器简单使用方法
Sep 21 Javascript
JS异步执行结果获取的3种解决方式
Feb 19 Javascript
了解JavaScript中let语句
May 30 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
Mar 31 Javascript
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
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
2010/08/21 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
js实现仿网易点击弹出提示同时背景变暗效果
2015/08/13 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
全面理解JavaScript中的闭包
2016/05/12 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
js判断是否是手机页面
2017/03/17 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
详解vue.js+UEditor集成 [前后端分离项目]
2017/07/07 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
Python与Redis的连接教程
2015/04/22 Python
python实现清屏的方法
2015/04/30 Python
python生成九宫格图片
2018/11/19 Python
python 函数中的参数类型
2020/02/11 Python
python如何更新包
2020/06/11 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
TripAdvisor德国:全球领先的旅游网站
2017/12/07 全球购物
德国黑胶唱片、街头服装及运动鞋网上商店:HHV
2018/08/24 全球购物
酒店总经理职务说明书
2014/02/26 职场文书
幼儿园中班评语大全
2014/04/17 职场文书
软件售后服务承诺书
2014/05/21 职场文书
公司任命书模板
2014/06/06 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
表扬信格式模板
2015/05/05 职场文书
2016继续教育培训学习心得体会
2016/01/19 职场文书
Python集合的基础操作
2021/11/01 Python