html2canvas实现截取指定区域或iframe的区域
官网文档: http://html2canvas.hertzen.com/
使用的是 jquery 3.2.1 html2canvas 1.0.0-rc.7
截取根据id的指定区域:
var canvasOtherTopHeight = $('.heading').height() + 31 + $('#site-navbar').height(); // .heading是指定区域父级上面同级的dom,因为存在高度,所以要计算到内
function createCanvas(id, obj) {
// 1.获取高度
let canvasObj = $('#' + id);
// 2.区域为画布
// console.log('--==', canvasObj.width(), canvasObj.height(), canvasObj.offset().left, canvasObj.parent().parent().position().top);
html2canvas(canvasObj.get(0), {
useCORS: true,
width: canvasObj.width() + 5,
height: canvasObj.height() - excelHeight,
x: canvasObj.offset().left,
y: canvasObj.parent().top + canvasOtherTopHeight
}).then(canvas => {
// canvasObj.parent().find('.target-canvas-img').attr('src', canvas.toDataURL('image/png', 1.0));
canvasObj.parent().find('.canvas-wrapper .canvas-word').append(canvas);
});
}
截取根据id的iframe的区域:
function createCanvas(id, obj) {
// 1.获取高度
let canvasObj = $('#' + id);
// 2.答案区域为图片
// console.log('--==', canvasObj.width(), canvasObj.height(), canvasObj.offset().left, canvasObj.parent().parent().position().top);
// excel的高度
let excelHeight = canvasObj.find('.answer-con-excel-container iframe').height();
let iframeHtml = canvasObj.find('.answer-con-excel-container iframe'); // 获取iframe内容
let iframeBody = iframeHtml.contents().find('body')[0];
html2canvas(iframeBody, {
allowTaint: true,
useCORS: true,
width: 820, // TODO 截屏按照1920*1080分辨率下的预览窗口宽高
height: 800,
x: 0,
y: 0
}).then(canvas => {
// canvasObj.parent().find('.target-canvas-img-excel').attr('src', canvas.toDataURL('image/png', 1.0));
canvasObj.parent().find('.canvas-wrapper .canvas-excel').append(canvas);
})
}
其中参数 width height 可根据效果进行增减
html2canvas实现截取指定区域或iframe的区域的更多相关文章
- CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法
CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法 sed -n '/2016-11-02 15:00:/,/2016-11-02 15:05:/p' catalina.out > ...
- asp.net截取指定长度的字符串内容
/// <summary> /// 用于截取指定长度的字符串内容 /// </summary> /// <param name="sString"&g ...
- [转]c#截取指定长度的字符串
/// <summary> /// 截取指定長度的字符串 /// </summary> /// <param name="s"></par ...
- php截取指定字符串之间的字符串的类
一个php截取指定字符串之间的字符串的类 <?php class get_c_str { var $str; var $start_str; var $end_str; va ...
- JS 实现 ResizeBar,可拖动改变两个区域(带iframe)大小
将网页化成两个区域,左边区域是一个树结构,右边区域是一个iframe,点击左边区域时,右边区域加载页面.实现功能:在两个区域间加一个可拖动条,拖动时改变左右两个区域的大小.在Google上搜索slid ...
- .net截取指定长度汉字超出部分以指定的字符代替
下面是我在网上搜索,然后加以整理的关于在.net中截取指定长度汉字超出部分以指定的字符代替,来拓展一下自己的思路. 方法一 :在后台的select语句中直接操作或是在数据库中写一个存储过程 Selec ...
- js实现超过长度的字符截取指定长度(中文字符算2个字符),超出部分以...显示
//超过长度的字符截取指定长度,超出部分以...显示 function subString(str, len) { var newLength = 0; var newStr = "&quo ...
- sql中从指定位置截取指定长度字符串
1. 字符串函数应用 --从指定索引截取指定长度的字符串 ,) --获取字符串中指定字符的索引(从1开始) select charindex(',','ab,cdefg') --实际应用中的语句 , ...
- Oracle 截取指定长度的字符
去掉回车,换行符号,截取指定长度的字符 具体代码示例: --Function --去掉前后空格,截取字符,字符长度为P_Length create or replace function get_St ...
随机推荐
- mysqldump备份恢复数据
//导出数据(多个表以空格间隔)mysqldump -h 127.0.0.1 -uroot -p123456 --default-character-set=utf8 pandora report & ...
- 000 PCI Express协议入门指南目录
一.001 PCI Express体系结构(一)
- EasyExcel导入导出
maven依赖 <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> & ...
- windows笔记-在可执行文件或DLL的多个实例之间共享静态数据
全局数据和静态数据不能被同一个. exe或DLL文件的多个映像共享,这是个安全的默认设置.但是,在某些情况下,让一个. exe文件的多个映像共享一个变量的实例是非常有用和方便的. 每个. exe或DL ...
- C#根据输入的字符串来创建类的实例
abstract class Vehicle { public abstract void Drive(); } class Car : Vehicle { public override void ...
- LeetCoded第242题题解--java--数组
数组 数组的优点在于: 构建非常简单 能在 O(1) 的时间里根据数组的下标(index)查询某个元素(连续内存+对象指向数组下标0位置+index能够直接找到元素) 而数组的缺点在于: 构建时必须分 ...
- java中的静态内部类
静态内部类是 static 修饰的内部类,这种内部类的特点是: 1. 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问 2. 如果外部类的静态成员与内部类的成 ...
- 微信小程序学习笔记一 小程序介绍 & 前置知识
微信小程序学习笔记一 1. 什么是小程序? 2017年度百度百科十大热词之一 微信小程序, 简称小程序, 英文名 Mini Program, 是一种不需要下载安装即可使用的应用 ( 张小龙对其的定义是 ...
- Scan error on column index 1, name “created_at“: unsupported Scan, storing driver.Value type []uint8
使用gorm,出现以下报错 在连接数据库时加上: parseTime=True db, err = gorm.Open(utils.Db, fmt.Sprintf("%s:%s@(%s:%s ...
- HCNP Routing&Switching之OSPF外部路由类型以及forwarding address
前文我们了解了OSPF的4类.5类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15222969.html:今天我们来聊一聊外部路由类型和forward ...