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

vue 使用html2canvas將DOM轉(zhuǎn)化為圖片的方法

 更新時間:2018年09月11日 14:59:36   作者:Peggy7  
這篇文章主要介紹了vue 使用html2canvas將DOM轉(zhuǎn)化為圖片的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、前言

我發(fā)現(xiàn)將DOM轉(zhuǎn)化為圖片是一個非常常見的需求,而自己手動轉(zhuǎn)是非常麻煩的,于是找到了html2canvas這個插件,既是用得比較多的也是維護得比較好的一個插件。

注意:版本比較多,這里介紹最新版

二、代碼

1. 安裝

npm install html2canvas --save

現(xiàn)在最新的版本應(yīng)該是1.0.0,另外還有一個比較經(jīng)典的版本是0.5.0,網(wǎng)上有許多關(guān)于這個版本的bug說明。

2. 使用

<div class="imageWrapper" ref="imageWrapper">
  <img class="real_pic" :src="dataURL" />
  <slot></slot>
</div>

slot里面是你需要轉(zhuǎn)化為圖片的DOM元素。

data() {
  return {
    dataURL: ''
  }
},

dataURL是最后轉(zhuǎn)化出來的圖片base64地址,放在img標簽中即可展示。

methods: {

toImage() {
  html2canvas(this.$refs.imageWrapper,{
    backgroundColor: null
  }).then((canvas) => {
    let dataURL = canvas.toDataURL("image/png");
    this.dataURL = dataURL;
  });
}
}

html2canvas的用法非常簡單,不過1.0.0已經(jīng)將寫法改為了promise,在.then方法里獲取canvas對象。

3.常見bug

1. 生成出來的圖片有白色邊框

在配置項里配置backgroundColor: null即可。

2. 有圖片顯示不出來并有報錯(一般是跨域的錯)

這是最常見的一個bug,就是這個插件無法生成跨域了的圖片,也看了官方文檔配置了也百度了都沒有好的辦法,最后是讓后端直接把跨域的圖片轉(zhuǎn)成base64,就完美解決了這個問題。

3. 生成圖片后會在原始DOM上覆蓋而產(chǎn)生一個閃動的效果

先讓生成的圖片隱藏,等生成好以后再展示。(沒有在手機上測試,效果不一定令人滿意)

4.經(jīng)典版本(0.5.0)常見bug

1.生成的圖片模糊
2.有跨域圖片導(dǎo)致生成的圖片不完整

這兩個問題網(wǎng)上百度都有很多解決辦法。

html2canvas在vue下的巨坑

使用

html

<div id="capture" style="padding: 10px; background: #f5da55">
  <h4 style="color: #000; ">Hello world!</h4>
</div>

js

html2canvas(document.querySelector("#capture")).then(canvas => {
  document.body.appendChild(canvas)
});
 
```
 
![clipboard.png](/img/bVbghPZ)
 
```
html2canvas(document.querySelector("#capture") {
  async: true
}).then(canvas => {
  document.body.appendChild(canvas)
});

如果你要配置一些參數(shù)可以在傳入dom的后面進行 object 傳參 官網(wǎng)文檔可查

官網(wǎng)文檔

我自己的工程環(huán)境是vue-cli會進行webpack打包在ios下運行的時候會出現(xiàn)錯誤因為我要生成一張圖片是的canvas api 是 toDataURL

這錯誤在ios一直顯示是權(quán)限問題  在ios 和safari 上的問題是一致的 原因是canva繪制dom上的圖片的時候是 base64的格式(webpack會對asstes目錄下的圖片進行壓縮)花費了幾個小時才解決這個問題,感覺很不值所以分享給大家希望大家別踩進去了!解決方法是可以 static目錄或者同域下的文件地址

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Vue中CSS樣式穿透問題

    詳解Vue中CSS樣式穿透問題

    這篇文章主要介紹了VUE中CSS樣式穿透問題,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • Vue項目如何根據(jù)不同運行環(huán)境打包項目

    Vue項目如何根據(jù)不同運行環(huán)境打包項目

    這篇文章主要介紹了Vue項目如何根據(jù)不同運行環(huán)境打包項目問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue3.0實現(xiàn)插件封裝

    vue3.0實現(xiàn)插件封裝

    這篇文章主要介紹了vue3.0實現(xiàn)插件封裝的方法,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-12-12
  • 基于vue與element實現(xiàn)創(chuàng)建試卷相關(guān)功能(實例代碼)

    基于vue與element實現(xiàn)創(chuàng)建試卷相關(guān)功能(實例代碼)

    這篇文章主要介紹了基于vue與element實現(xiàn)創(chuàng)建試卷相關(guān)功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • elementui實現(xiàn)標簽頁與菜單欄聯(lián)動的示例代碼

    elementui實現(xiàn)標簽頁與菜單欄聯(lián)動的示例代碼

    多級聯(lián)動是一種常見的交互方式,本文主要介紹了elementui實現(xiàn)標簽頁與菜單欄聯(lián)動的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • Vue3使用Proxy實現(xiàn)數(shù)據(jù)監(jiān)聽的原因分析

    Vue3使用Proxy實現(xiàn)數(shù)據(jù)監(jiān)聽的原因分析

    在本篇文章里小編給大家整理的是一篇關(guān)于Vue3使用Proxy實現(xiàn)數(shù)據(jù)監(jiān)聽的原因分析內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-11-11
  • Vue自定義省市區(qū)三級聯(lián)動

    Vue自定義省市區(qū)三級聯(lián)動

    這篇文章主要為大家詳細介紹了Vue自定義省市區(qū)三級聯(lián)動,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • vue中組件<router-view>使用方法詳解

    vue中組件<router-view>使用方法詳解

    這篇文章主要給大家介紹了關(guān)于vue中組件<router-view>使用方法的相關(guān)資料,Vue 路由中的 <router-view/> 是用來承載當前級別下的子級路由的一個視圖標簽,此標簽的作用就是顯示當前路由級別下一級的頁面,需要的朋友可以參考下
    2024-06-06
  • vue關(guān)于data變量定義的問題

    vue關(guān)于data變量定義的問題

    這篇文章主要介紹了vue關(guān)于data變量定義的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue 項目集成 electron 和 electron 打包及環(huán)境配置方法

    vue 項目集成 electron 和 electron 打包及環(huán)境配

    文章介紹了如何使用Vue和Electron開發(fā)桌面端應(yīng)用,包括安裝Electron、配置package.json、創(chuàng)建main.js文件、運行和打包應(yīng)用等步驟,并分享了一些常見的打包錯誤及其解決方法,感興趣的朋友一起看看吧
    2025-01-01

最新評論

托里县| 通山县| 灵石县| 富蕴县| 葫芦岛市| 扶绥县| 太仆寺旗| 东阿县| 海丰县| 定州市| 比如县| 西林县| 新丰县| 汝城县| 达州市| 内乡县| 南阳市| 平谷区| 汉源县| 鄂托克前旗| 攀枝花市| 湖州市| 镇坪县| 蒙城县| 米泉市| 抚松县| 陕西省| 澜沧| 昌邑市| 玛纳斯县| 怀安县| 金门县| 龙州县| 板桥市| 昆山市| 莱芜市| 民乐县| 固始县| 敖汉旗| 游戏| 元朗区|