最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue項目中使用html2canvas解決截圖不全的問題

 更新時間:2023年11月24日 10:38:07   作者:吃葡萄不吐葡萄皮嘻嘻  
本文主要介紹了vue項目中使用html2canvas解決截圖不全的問題

話不多說,直接上代碼?。。?/p>

一、安裝插件

npm i html2canvas --save

二、頁面引入插件

import html2canvas from "html2canvas";
<div>
    <el-button @click="downloadPicture">下載</el-button>
    <div ref="imageDom">
      <el-table
        :data="tableData"
        style="width: 100%"
        :row-class-name="tableRowClassName"
      >
        <el-table-column prop="date" label="日期" width="180"> </el-table-column>
        <el-table-column prop="name" label="姓名" width="180"> </el-table-column>
        <el-table-column prop="address" label="地址"> </el-table-column>
        <el-table-column prop="age" label="年齡"> </el-table-column>
      </el-table>
   </div>
</div>

頁面效果圖展示(有橫向和縱向的滾動條):

在這里插入圖片描述

重點思路:

首先是獲取要截取頁面的父元素,通過clone并緊隨于body之后,在生成幕布的時候不再拿著父元素去截取,而是截取clone的div,這樣的話就可以實現(xiàn)整個頁面的截取了

 //截圖
    downloadPicture () {
      var width = this.$refs.imageDom.style.width
      var cloneDom = this.$refs.imageDom.cloneNode(true)
      cloneDom.style.position = 'absolute'
      cloneDom.style.top = '0px'
      cloneDom.style.zIndex = '-1'
      cloneDom.style.width = width
      document.body.appendChild(cloneDom)
      html2canvas(cloneDom).then(canvas => {
        // 轉(zhuǎn)成圖片,生成圖片地址
        var imgUrl = canvas.toDataURL('image/png')
        var eleLink = document.createElement('a')
        eleLink.href = imgUrl // 轉(zhuǎn)換后的圖片地址
        eleLink.download = 'pictureName'
        // 觸發(fā)點擊
        document.body.appendChild(eleLink)
        eleLink.click()
        // 然后移除
        document.body.removeChild(eleLink)
      })
      cloneDom.style.display = 'none'
    },

下載一鍵截屏效果圖展示如下(完美展示~~):

在這里插入圖片描述

!!!注意:以上代碼沒有設(shè)置table高度和列固定,如果table設(shè)置了高度或者設(shè)置了列固定會出現(xiàn)截圖不全的問題,此時需要動態(tài)的給table設(shè)置高度和列固定, 不設(shè)置高度的時候高度設(shè)置為空值才生效,設(shè)置為none、auto、100%不生效

所有代碼如下:

<template>
  <div ref="imageDom" >
    <el-button @click="downloadPicture">下載</el-button>
    <div >
      <el-table
        class="tableX"
        :height="flag ? '400' : ''"
        :data="tableData"
        :row-class-name="tableRowClassName"
      >
        <el-table-column :fixed="flag?true:false" prop="date" label="日期" width="180">
        </el-table-column>
        <el-table-column  prop="name" label="姓名" width="180">
        </el-table-column>
        <el-table-column prop="address" label="地址"> </el-table-column>
        <el-table-column prop="age" label="年齡"> </el-table-column>
        <el-table-column prop="sex" label="性別"> </el-table-column>
        <el-table-column prop="hobby" label="愛好"> </el-table-column>
      </el-table>
    </div>
  </div>
</template>

<script>
import html2canvas from "html2canvas";
export default {
  data() {
    return {
      tableData: [
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "開始",
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市",
        },
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市",
        },
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市",
        },
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "上海市",
        },
        {
          date: "2016-05-02",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-04",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海",
          age: 30,sex:'女',hobby:'愛好'
        },
        {
          date: "2016-05-03",
          name: "王小虎",
          address: "結(jié)尾",
        },
      ],
      h: 400,
      flag: true,
    };
  },
  methods: {
    tableRowClassName({ rowIndex }) {
      if (rowIndex % 2 === 0) {
        return "warning-row";
      } else if (rowIndex % 2 !== 0) {
        return "success-row";
      }
      return "";
    },
    //截圖
    downloadPicture() {
      this.flag = false;
      this.$nextTick(() => {
        var width = this.$refs.imageDom.style.width;
        var cloneDom = this.$refs.imageDom.cloneNode(true);
        cloneDom.style.position = "absolute";
        cloneDom.style.top = "0px";
        cloneDom.style.zIndex = "-1";
        cloneDom.style.width = width;
        console.log(cloneDom);
        document.body.appendChild(cloneDom);
        html2canvas(cloneDom).then((canvas) => {
          // 轉(zhuǎn)成圖片,生成圖片地址
          var imgUrl = canvas.toDataURL("image/png");
          var eleLink = document.createElement("a");
          eleLink.href = imgUrl; // 轉(zhuǎn)換后的圖片地址
          eleLink.download = "pictureName";
          // 觸發(fā)點擊
          document.body.appendChild(eleLink);
          eleLink.click();
          // 然后移除
          document.body.removeChild(eleLink);
        });
        cloneDom.style.display = "none";
        this.flag = true;
      });
    },
  },
};
</script>

<style>
.el-table .warning-row {
  background: oldlace;
}

.el-table .success-row {
  background: #f0f9eb;
}
</style>

到此這篇關(guān)于vue項目中使用html2canvas解決截圖不全的問題的文章就介紹到這了,更多相關(guān)vue html2canvas截圖不全內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • vue全局組件和局部組件的寫法介紹

    vue全局組件和局部組件的寫法介紹

    這篇文章主要介紹了vue全局組件和局部組件的寫法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 前端筆記之vue中Map、Set之間的使用和區(qū)別詳析

    前端筆記之vue中Map、Set之間的使用和區(qū)別詳析

    Vue中的Map格式,是一種用于存儲和管理鍵值對數(shù)據(jù)的集合,與常規(guī)的數(shù)組不同,Map提供了更靈活和高效的方式來操作數(shù)據(jù),這篇文章主要介紹了前端筆記之vue中Map、Set之間的使用和區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2025-11-11
  • 解決iView中時間控件選擇的時間總是少一天的問題

    解決iView中時間控件選擇的時間總是少一天的問題

    下面小編就為大家分享一篇解決iView中時間控件選擇的時間總是少一天的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Vue中key的具體使用

    Vue中key的具體使用

    在vue中,key是dom對象的標(biāo)識,本文主要介紹了Vue中key的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • 前端開發(fā)指南之vue-grid-layout的使用實例

    前端開發(fā)指南之vue-grid-layout的使用實例

    vue-grid-layout是一個vue柵格拖動布局的組件,下面這篇文章主要給大家介紹了關(guān)于前端開發(fā)指南之vue-grid-layout使用的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Vue中使用touchstart、touchmove、touchend與click沖突問題

    Vue中使用touchstart、touchmove、touchend與click沖突問題

    這篇文章主要介紹了Vue中使用touchstart、touchmove、touchend與click沖突問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue如何清空對象

    Vue如何清空對象

    這篇文章主要介紹了Vue如何清空對象,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue element-ui el-table組件自定義合計(summary-method)的坑

    vue element-ui el-table組件自定義合計(summary-method)的坑

    這篇文章主要介紹了vue element-ui el-table組件自定義合計(summary-method)的坑及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • vue組件 $children,$refs,$parent的使用詳解

    vue組件 $children,$refs,$parent的使用詳解

    本篇文章主要介紹了vue組件 $children,$refs,$parent的使用詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 前端vue項目debugger調(diào)試操作詳解

    前端vue項目debugger調(diào)試操作詳解

    在vue項目調(diào)試的時候,代碼里面標(biāo)注debugger,這篇文章主要給大家介紹了關(guān)于前端vue項目debugger調(diào)試操作的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05

最新評論

酒泉市| 独山县| 南川市| 福州市| 宣汉县| 寻乌县| 巩义市| 扎兰屯市| 萝北县| 霍林郭勒市| 合江县| 广昌县| 宁夏| 当涂县| 体育| 吉安市| 开阳县| 永济市| 浙江省| 余姚市| 会同县| 乌什县| 麦盖提县| 宝山区| 克山县| 花莲县| 柳林县| 高碑店市| 墨玉县| 阜新| 大厂| 中宁县| 大理市| 潢川县| 溧阳市| 大埔区| 英吉沙县| 浦县| 上虞市| 揭阳市| 稻城县|