亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue項(xiàng)目中如何將當(dāng)前頁面生成圖片

 更新時(shí)間:2023年10月30日 08:50:08   作者:末日與曙光  
這篇文章主要介紹了vue項(xiàng)目中如何將當(dāng)前頁面生成圖片問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

閑著沒事總結(jié)一下vue 項(xiàng)目中將當(dāng)前頁面生成圖片,給各位看官做個(gè)參考。

安裝所需依賴

npm install --save html2canvas // 頁面轉(zhuǎn)圖片

詳細(xì)代碼

累了,毀滅吧,直接上代碼,代碼里的注釋已經(jīng)解釋完了;

對(duì)了,這是移動(dòng)端樣式;

<template>
  <div class="ReservedSucceed">
    <div id="ReservedSucceed" @click="imgBox=false">
        <div class="content" v-for="item in strList" :key="item.label">
          <p class="hide">{{item.str}}</p>
        </div>
    </div>
    <el-button type="primary" @click="imgBox=true" >網(wǎng)頁生成圖片</el-button>
    <div class="imgBox" v-show="imgBox">
      <div class="img">
        <img :src="fileId" alt="">
      </div>
      <div class="box">
        <a class="down" href download="圖片名字">請(qǐng)長(zhǎng)按保存圖片</a>
      </div>
    </div>
    
  </div>
</template>

<script>
import html2canvas from 'html2canvas'

export default {
  data() {
    return {
      fileId:"",
      imgurl: null,
      imgBox: false,
      strList:[
        {str:"要永遠(yuǎn)堅(jiān)信這一點(diǎn):一切都會(huì)變的,無論受多大創(chuàng)傷心情多么沉重,一貧如洗也好,都要堅(jiān)持住。太陽落了還會(huì)升起,不幸的日子總會(huì)有盡頭,過去是這樣,將來也是這樣。早安!",label:"1"},
        {str:"這是他的似水流年,不是我的。歲月如流,就如月在當(dāng)空,照著我們每一個(gè)人,但是每個(gè)人的生活都不一樣。",label:"2"},
        {str:"流水是白云的影子,月亮是太陽的影子,黑夜是白天的影子,痛苦是愛的影子。不求你做我的影子,甘愿我做你的影子。",label:"3"},
        {str:"花開一季,人活一世,只有時(shí)光安然無恙。那些轉(zhuǎn)正確的彎,那些流下的淚水,那些滴下的汗水,不論好壞,終究成全了現(xiàn)在的自己。",label:"4"},
        {str:"人生沒有假設(shè),當(dāng)下即是全部。人生的幸與不幸,關(guān)鍵看你面向哪里。幸福如陽光,不幸是陰影,有陽光就必然有陰影。人生一邊是永無止境的追求,一邊是平淡如水的流年。不是每一次追求都能成功,不是每一次付出都有收獲。",label:"5"},
        {str:"在滄海桑田,我們就是那起舞的蝴蝶,無論今天怎樣,明天我還會(huì)在這里,路過我曾經(jīng)去過的地方,探索我未實(shí)現(xiàn)的未來,哪怕是蝴蝶飛不過滄海。",label:"6"},
        {str:"從容來去,坦然今生。無論生命給了我們什么,是雨露的滋潤(rùn),還是陽光的照射,是狂風(fēng)的吹拂,還是暴雨的敲打,我們都從容地接受,欣然地釋放著生命的繁麗。如果遇到的是傷痛,我們就要學(xué)會(huì)堅(jiān)忍,并因此練就釋懷生命起落的本能。如果遇到的是快樂,我們就幸福地綻開笑容,并把快樂傳播。如果遇到的是黑夜,我們就和星星、月亮一起迎接每一個(gè)黎明的到來;如果遇到的是白晝,我們就盡情地去欣賞鮮花的綻放、鳥兒的歌唱、蝶兒的輕舞,去擁抱這個(gè)美麗而充滿生機(jī)的世界。",label:"7"},

      ]
    };
  },
  created() {
  },
  mounted() {
    //將網(wǎng)頁生成圖片
    this.htmlTocanvas();
  },
  methods: {
     //獲取截圖
     getBase64(fileId) {
      this.fileId = fileId
    },
    //頁面生成圖片(基礎(chǔ)版)
    htmlTocanvas() {
      const that = this;
      html2canvas(document.getElementById("ReservedSucceed")).then(
        async function(canvas) {
        // 第一種方法,生成base64
        // let str = canvas.toDataURL("image/png").split(",")[1];
        
        that.getBase64(canvas.toDataURL("image/png"));
        // 第二種方法,直接下載
        // canvas轉(zhuǎn)換成url,然后利用a標(biāo)簽的download屬性,直接下載,繞過上傳服務(wù)器再下載
        // document
        //   .querySelector(".down")
        //   .setAttribute("href", canvas.toDataURL());
        // 第三種方法,生成的圖片的url
        // var imgurl = canvas
        //   .toDataURL("image/png")
        //   .replace("image/png", "image/octet-stream"); // 獲取生成的圖片的url
        // window.location.href = imgurl; // 下載圖片
        }
        
      )
    },
    //頁面生成圖片(進(jìn)階版)
    htmlTocanvas1() {
      //解決生成的網(wǎng)頁圖片不清晰------預(yù)防,暫未出現(xiàn)
      const that = this;
      //創(chuàng)建一個(gè)新的canvas

      var canvas2 = document.createElement("canvas");
      // let _canvas = document.querySelector('div');
      let _canvas = document.getElementById("ReservedSucceed");

      var w = parseInt(window.getComputedStyle(_canvas).width);
      var h = parseInt(window.getComputedStyle(_canvas).height);
      //將canvas畫布放大若干倍,然后盛放在較小的容器內(nèi),就顯得不模糊了
      canvas2.width = w * 3;
      canvas2.height = h * 3;
      canvas2.style.width = w + "px";
      canvas2.style.height = h + "px";
      //可以按照自己的需求,對(duì)context的參數(shù)修改,translate指的是偏移量
      //  var context = canvas.getContext("2d");
      //  context.translate(0,0);
      var context = canvas2.getContext("2d");

      html2canvas(document.getElementById("ReservedSucceed"), {
        canvas: canvas2
      }).then(async function(canvas) {
        // 第一種方法,生成base64
        // let str = canvas.toDataURL("image/png").split(",")[1];
        
        that.getBase64(canvas.toDataURL("image/png"));
        // 第二種方法,直接下載
        // canvas轉(zhuǎn)換成url,然后利用a標(biāo)簽的download屬性,直接下載,繞過上傳服務(wù)器再下載
        // document
        //   .querySelector(".down")
        //   .setAttribute("href", canvas.toDataURL());
        // 第三種方法,生成的圖片的url
        // var imgurl = canvas
        //   .toDataURL("image/png")
        //   .replace("image/png", "image/octet-stream"); // 獲取生成的圖片的url
        // window.location.href = imgurl; // 下載圖片
      });
    },
  }
}
</script>

<style lang="scss" scoped>
.ReservedSucceed {
  background-color: white;
  .hide {
    text-indent: 1em;
  }
  .imgBox {
    position: fixed;
    top: 15%;
    left: 25%;
    width: 50%;
    background-color: rgb(232, 236, 232);
    z-index: 2;
    border-radius: 20px;
    padding: 5px;
    .img {
      padding: 10px;
      img {
        width: 100%;
      }
    }
    .box {
      text-align: center;
      margin: 10px 0;
    }
  }
}
</style>

結(jié)果圖


總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue(element ui)中操作row參數(shù)的使用方式

    Vue(element ui)中操作row參數(shù)的使用方式

    這篇文章主要介紹了Vue(element ui)中操作row參數(shù)的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Vue分析同步和異步有什么區(qū)別

    Vue分析同步和異步有什么區(qū)別

    這篇文章主要介紹了Vue分析同步和異步有什么區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-05-05
  • vue2+element-ui使用vue-i18n進(jìn)行國(guó)際化的多語言/國(guó)際化詳細(xì)教程

    vue2+element-ui使用vue-i18n進(jìn)行國(guó)際化的多語言/國(guó)際化詳細(xì)教程

    這篇文章主要給大家介紹了關(guān)于vue2+element-ui使用vue-i18n進(jìn)行國(guó)際化的多語言/國(guó)際化的相關(guān)資料,I18n是Vue.js的國(guó)際化插件,項(xiàng)目里面的中英文等多語言切換會(huì)使用到這個(gè)東西,需要的朋友可以參考下
    2023-12-12
  • 關(guān)于el-form中el-input輸入框的寬度問題詳解

    關(guān)于el-form中el-input輸入框的寬度問題詳解

    自從用了element-ui,確實(shí)好用,該有的組件都有,下面這篇文章主要給大家介紹了關(guān)于el-form中el-input輸入框的寬度問題的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • vue項(xiàng)目中的支付功能實(shí)現(xiàn)(微信支付和支付寶支付)

    vue項(xiàng)目中的支付功能實(shí)現(xiàn)(微信支付和支付寶支付)

    本文主要介紹了vue項(xiàng)目中的支付功能實(shí)現(xiàn)(微信支付和支付寶支付),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Vue3?中的??shallowReactive?詳解

    Vue3?中的??shallowReactive?詳解

    本文深入探討了Vue3中新特性shallowReactive的使用和原理,shallowReactive是創(chuàng)建淺響應(yīng)式對(duì)象的API,只對(duì)對(duì)象的第一層屬性進(jìn)行響應(yīng)式轉(zhuǎn)換,不對(duì)嵌套對(duì)象處理,有助于性能優(yōu)化和狀態(tài)管理,同時(shí)也指出了shallowReactive在使用中的注意事項(xiàng)
    2024-10-10
  • VueX模塊的具體使用(小白教程)

    VueX模塊的具體使用(小白教程)

    這篇文章主要介紹了VueX模塊的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Vuex持久化插件(vuex-persistedstate)解決刷新數(shù)據(jù)消失的問題

    Vuex持久化插件(vuex-persistedstate)解決刷新數(shù)據(jù)消失的問題

    這篇文章主要介紹了Vuex持久化插件(vuex-persistedstate)-解決刷新數(shù)據(jù)消失的問題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-04-04
  • axios+vue請(qǐng)求時(shí)攜帶cookie的方法實(shí)例

    axios+vue請(qǐng)求時(shí)攜帶cookie的方法實(shí)例

    做項(xiàng)目時(shí)遇到一個(gè)需求,后端需要在接口請(qǐng)求時(shí),對(duì)用戶登陸狀態(tài)進(jìn)行判斷,需要在請(qǐng)求時(shí)攜帶Cookie,下面這篇文章主要給大家介紹了關(guān)于axios+vue請(qǐng)求時(shí)攜帶cookie的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • vue3學(xué)習(xí)筆記之自定義組件舉例

    vue3學(xué)習(xí)筆記之自定義組件舉例

    這篇文章主要給大家介紹了關(guān)于vue3學(xué)習(xí)筆記之自定義組件的相關(guān)資料,組件系統(tǒng)是Vue.js其中一個(gè)重要的概念,它提供了一種抽象,讓我們可以使用獨(dú)立可復(fù)用的小組件來構(gòu)建大型應(yīng)用,需要的朋友可以參考下
    2023-08-08

最新評(píng)論