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

vue3如何將html元素變成canvas(海報生成),進行圖片保存/截圖

 更新時間:2022年05月24日 08:59:44   作者:只會cv的小前端  
這篇文章主要介紹了vue3實現(xiàn)將html元素變成canvas(海報生成),進行圖片保存/截圖,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

將html元素變成canvas(海報生成),進行圖片保存/截圖

// 網頁上只有一張圖片 我們可以直接就進行圖片保存
// 但是你想 保存這張圖片的時候 順便把下面的字也帶上  相當于截圖  那請你像我這樣做
 <div id="capture" style="padding: 10px; background: #fff">
      <img :src="whoImg" style="width: 300px" alt="" />
      <h4 style="color: #000">Hello world!</h4>
 </div>
 // 觸發(fā)按鈕
 <button @click="isShow()">生成海報</button>
 //這里是創(chuàng)建一個容器 存放你待會想保存的圖片  也就是你想要的截圖
<div ref="wrapper" id="wrapper" v-show="show" @click="remove()"></div>

// 引入插件 沒有就直接下 npm install html2canvas filesaver --save
import html2canvas from 'html2canvas';

setup() {
// 隨便搞張圖
let whoImg=require('../assets/1.png').default;
// 綁定你的容器
let wrapper = ref();
// 控制容器顯示
let show = ref(false);
// 鎖 防止 多次生成
let lock = ref(1);
// 觸發(fā)
const isShow = () => {
   show.value = true;
   //  html2canvas的方法  傳你要截圖的盒子  會把盒子內的所有元素都變成一張canvas圖片
   html2canvas(document.querySelector('#capture')).then((canvas) => {
   if (lock.value) {
   // 給容器加入這個canvas
      wrapper.value.appendChild(canvas);
      lock.value = 0;
    }
  });
};
// 移除這個容器內容
const remove = () => {
      show.value = false;
      if (!lock.value) {
        lock.value = 1;
        wrapper.value.innerHTML = '';
      }
 };


}

// 圖片大小
img {
    width: 300px;
 }
 // 放canvas這個容器的大小
#wrapper {
  width: 500px;
  height: 500px;
  position: fixed;
  top: 0;
  left: 0;
  // 這下面是vant自定義的組件樣式用的 不打緊
  z-index: var(--van-overlay-z-index);
  background-color: var(--van-overlay-background-color);
}

使用html2canvas將頁面轉化為圖片

微信端將頁面截屏之后保存到本地,使用了html2canvas插加粗樣式

install

npm install --save html2canvas

在所需頁面引入

import html2canvas from "html2canvas"

use

<div ref="imageWrapper">
? ? ? <div class="success">
? ? ? ? <div class="img">
? ? ? ? ? <img class="img-icon" src="../assets/success.png"/>
? ? ? ? ? <p style="font-weight: 600; font-size: 18px">支付成功</p>
? ? ? ? </div>
? ? ? </div>
? ? ? <div class="success-detail">
? ? ? ? <el-row style="margin-top: 10px;">
? ? ? ? ? <el-col :span="5" class="col-left-suc">收款商家</el-col>
? ? ? ? ? <el-col :span="16" class="col-right">{{merchant}}</el-col>
? ? ? ? </el-row>
? ? ? ? <el-row style="margin-top: 10px;">
? ? ? ? ? <el-col :span="5" class="col-left-suc">費用名稱</el-col>
? ? ? ? ? <el-col :span="16" class="col-right">{{contName}}</el-col>
? ? ? ? </el-row>
? ? ? ? <el-row style="margin-top: 10px;">
? ? ? ? ? <el-col :span="5" class="col-left-suc">繳費金額</el-col>
? ? ? ? ? <el-col :span="16" class="col-right">{{chargePrice}}元</el-col>
? ? ? ? </el-row>
? ? ? </div>
? ? </div>
? ? <div class="button">
? ? ? <el-button style="width: 70%;" type="success" size="small" @click="toImage">生成截圖</el-button>
? ? </div>

vue中用ref來指定你需要截屏的dom

toImage() {
? ? ? ? html2canvas(this.$refs.imageWrapper).then(canvas => {
? ? ? ? ? let dataURL = canvas.toDataURL("image/png");
? ? ? ? ? this.imgUrl = dataURL;
? ? ? ? ? if (this.imgUrl !== "") {
? ? ? ? ? ? this.dialogTableVisible = true;
? ? ? ? ? }
? ? ? ? });
? ? ? }

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 解決webpack+Vue引入iView找不到字體文件的問題

    解決webpack+Vue引入iView找不到字體文件的問題

    今天小編就為大家分享一篇解決webpack+Vue引入iView找不到字體文件的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue項目兩種方式實現(xiàn)豎向表格的思路分析

    vue項目兩種方式實現(xiàn)豎向表格的思路分析

    這篇文章主要介紹了vue項目兩種方式實現(xiàn)豎向表格的思路分析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Vue.js每天必學之組件與組件間的通信

    Vue.js每天必學之組件與組件間的通信

    Vue.js每天必學之組件與組件間的通信,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • vue中回調函數(shù)(callback)的用法舉例

    vue中回調函數(shù)(callback)的用法舉例

    這篇文章主要給大家介紹了關于vue中回調函數(shù)(callback)的用法舉例,所謂的回調函數(shù),就是由調用函數(shù)提供執(zhí)行代碼,被調用函數(shù)執(zhí)行完畢之后,再自動執(zhí)行的一個函數(shù),需要的朋友可以參考下
    2023-08-08
  • vue3之axios跨域請求問題及解決

    vue3之axios跨域請求問題及解決

    這篇文章主要介紹了vue3之axios跨域請求問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Vue?el-table實現(xiàn)右鍵菜單功能

    Vue?el-table實現(xiàn)右鍵菜單功能

    這篇文章主要為大家詳細介紹了Vue?el-table實現(xiàn)右鍵菜單功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 詳解Vue2 無限級分類(添加,刪除,修改)

    詳解Vue2 無限級分類(添加,刪除,修改)

    本篇文章主要介紹了詳解Vue2 無限級分類(添加,刪除,修改) ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 前端vue-cropperjs實現(xiàn)圖片裁剪方案

    前端vue-cropperjs實現(xiàn)圖片裁剪方案

    這篇文章主要為大家介紹了前端vue-cropperjs實現(xiàn)圖片裁剪方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • vue 防止頁面加載時看到花括號的解決操作

    vue 防止頁面加載時看到花括號的解決操作

    這篇文章主要介紹了vue 防止頁面加載時看到花括號的解決操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue單頁應用加百度統(tǒng)計代碼(親測有效)

    vue單頁應用加百度統(tǒng)計代碼(親測有效)

    這篇文章主要介紹了vue單頁應用加百度統(tǒng)計代碼的解決方法,需要的朋友參考下吧
    2018-01-01

最新評論

峡江县| 安宁市| 海门市| 始兴县| 平阳县| 公安县| 大港区| 巴青县| 景宁| 桂平市| 江安县| 乌拉特前旗| 松阳县| 驻马店市| 万全县| 巴林右旗| 谷城县| 南丰县| 昌图县| 大庆市| 都安| 芷江| 昆明市| 龙州县| 潜山县| 潍坊市| 灵石县| 玛曲县| 九江市| 濮阳市| 九江县| 宁晋县| 中江县| 石城县| 克什克腾旗| 饶阳县| 玛曲县| 奉贤区| 石泉县| 石台县| 当雄县|