vue H5页面长截图

公众号H5页面长截图

如果你想要将整个页面转换为图片,通常需要使用到 html2canvas库,它可以将整个页面渲染为canvas元素,然后转换为图片。但是这通常会导致图片文件大小较大,并且可能不会包括页面中的某些内容,因为html2canvas渲染的是页面的布局,而不是内容。

安装  npm install html2canvas

<template>
	<div>
      <div class="page" id="content" ref="content">
        <div class="title">截图的内容</div>
      </div>
      <button class="btn-box" @click="onClick">截图</button>
  </div>
</template>

<script>
  import html2canvas from 'html2canvas'

  export default {
    data() {
      return {
        imgUrl : ""
      }
    },
    methods: {
     //关于高度的scrollHeight、clientHeight区别
      //https://cloud.tencent.com/developer/article/2107920
      onClick() {
       setTimeout(() => {
                html2canvas(document.getElementById('content'), {
                    allowTaint: true,//是否跨域图像污染画布
                    useCORS: true,
                    backgroundColor: '#fff',
                    scale: 2,
                    dpi: 500,
                    width: document.getElementById('content').clientWidth,
                    height: document.getElementById('content').scrollHeight, //scrollHeight 
                    scrollX: 0,
                    scrollY: 0,
                }).then(canvas => {
                    this.imgUrl = canvas.toDataURL('image/png');
                    //上传文件
                    // this.uploadB64(this.imgUrl)
                });
            })
      },
    },
  }
</script>
<style>
.page {
        width: 100%;
        height: auto;
        padding: 0.3rem;
        overflow: auto;
        position: relative;
        background: linear-gradient(180deg, #3673f5 0%, #6aabff 100%);
}
.title {
  text-align: center;
  margin: 20px 0 10px 0;
  font-size: 13px;
}
.des {
  background-color: #3f61c94f;
  padding: 6px 0px;
  margin: 10px 0;
}
.btn-box {
  width: 100%;
  height: 40px;
  line-height: 40px;
  color: #fff;
  background-color: #224799;
  border: none;
  margin-top: 40px;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
}
</style>

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值