vue点击按钮自动截图并下载

问题描述

vue中点击按钮自动截图并下载图片点击一个按钮,截取对应区域的界面,才对截取的界面进行裁切并下载
在这里插入图片描述

代码实现

1、npm install html2canvas  //下载包
2、import html2canvas from "html2canvas"  //导入包
	components: {
	html2canvas
	},
3.vue页面
	** ref="faultTree是你需要截图的部分**
	<el-button type="primary" @click="clickGeneratePicture">截图</el-button> 
    <div class="contain" ref="faultTree">
      <div class="table_container">
        <el-table
          v-loading="loading"
          :data="tableData"
          border
          stripe
          highlight-current-row
          header-cell-class-name="table-header-class"
          style="width:100%"
        >
          <el-table-column label="序号" width="60" align="center">
            <template slot-scope="scope">
              <span>{{scope.$index+(paginations.pageIndex - 1) * paginations.pageSize + 1}}</span>
            </template>
          </el-table-column>
          <el-table-column property="username" label="用户姓名" width="80" align="center"></el-table-column>
          <el-table-column property="email" label="邮箱地址" width="180" align="center"></el-table-column>
          <el-table-column property="address" label="注册地址" width="210" align="center"></el-table-column>
          <el-table-column property="createTime" label="注册时间" width="180" align="center"></el-table-column>
        </el-table>
      </div>
    </div>
    // data数据
	      loading:false,
	      tableData:[{
	        username:'jiang',
	        email:'112125435@qq.com',
	        address:'杭州',
	        createTime:'2020-10-20',
	      }],
	// 方法
	clickGeneratePicture() {
      // let self = this;
      let ref = this.$refs.faultTree; // 截图区域
      console.log(ref);
      html2canvas(ref, {
        backgroundColor: "#142E48"
      })
      .then(canvas => {
        let dataURL = canvas.toDataURL("image/png");
        this.dataURL = dataURL;
        let creatDom = document.createElement("a");
        document.body.appendChild(creatDom);
        creatDom.href = dataURL;
        creatDom.download = "这是刚刚的截图";
        creatDom.click();
      })
      .catch(err => {
        this.$message({
          message: "图片生成失败",
          type: "error"
        });
      });
    }

点击’截图按钮’就会直接下载图片,看效果!
在这里插入图片描述

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值