js用html2canvas.js实现包含非可视区域内容的截屏下载

由于项目开发需求,需要将表格数据以图片形式下载到本地,之前有了解到ExportPrint.js插件,可以将页面元素以图片形式下载导出,但此方法只适用于出现纵向滚动轴的页面,当有横向滚动轴时页面只会截取可视区域内容。借助网友的智慧(js截取页面内容、生成png(包括非可视区域)、下载到本地)实现了包含非可视区域内容的图片导出下载,方法如下:
一、HTML

// table内容为导出元素,该功能是用bootstrap-table动态生成表格,表格具体实现方法暂不写
// 请注意:一定要用position:absolute 目的是将页面元素 脱离文档流,目标是可截取非可视区域的内容
<div class="tableArea">
          <table class="table table-striped Table" id="Table"  style="position: absolute;"></table>
  </div>

二、CSS

/*由于canvas画布必须要有背景色,所以这里给单元格添加背景色,不然导出的表格图片为透明背景字体展示不清晰 */
 <style type="text/css">
        table thead tr th,
        table tbody td {
            background:#ffffff
        }
    </style>

三、JS

	//等表格元素加载完成之后再执行图片下载,故写了0.2s的延迟
	  //图片下载
        setTimeout(function () {               
              html2canvas_2();
          },200);
       
       function html2canvas_2() {
			//获取截取区域的高度和宽度
            var TargetNode = document.querySelector("#Table");           
            var h = $(TargetNode).height();
            var w = $(TargetNode).width();
			//设置 canvas 画布的宽高 是容器搞度 2倍、为了是图片清晰
				/**1.创建画布
				    *
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值