溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

vue中element的el-image圖片預(yù)覽下載功能怎么實現(xiàn)

發(fā)布時間:2023-04-15 14:09:31 來源:億速云 閱讀:217 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要講解了“vue中element的el-image圖片預(yù)覽下載功能怎么實現(xiàn)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“vue中element的el-image圖片預(yù)覽下載功能怎么實現(xiàn)”吧!

一、安裝element-ui

1. 安裝element-ui

在項目終端輸入以下代碼完成element-ui的安裝

npm i element-ui -S

 2. 檢查是否安裝成功

查看配置文件package.json,是否有element-ui組件的版本號

vue中element的el-image圖片預(yù)覽下載功能怎么實現(xiàn)

3. 引用element-ui組件

在main.js文件中輸入以下代碼,引入element

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
 
Vue.use(ElementUI)

二、改造步驟

修改代碼:

通過點擊放大時,添加點擊事件,然后通過append 添加 按鈕并且綁定事件,還是看下圖吧,兄弟們,粘起來。

<template>
<div >
         <waterfall
             @loadmore="loadmore"
             :col=4
             :lazy-distance="300"
             :load-distance="300"
             :data="xx">
           <div class="cell-item zxzx demo-image__preview "  v-for="(item,index) in xx" :key="index" @click="checkImage" >
             <el-image
                 
                 :src="item.img1"
                 :preview-src-list="[item.img]">
             </el-image>
             <p >{{item.createTime}}</p>
           </div>
         </waterfall>
       </div>
</template>
 
<script>
 mounted() {
window.cl = this.cl
},
methods: {
cl() {
      let srcUrl=document.querySelector('.el-image-viewer__img').src;
      this.downloadIamge(srcUrl,srcUrl)
    },
 checkImage(){//這個事件要綁定el-image父級盒子上
      console.log('點擊事件');
      let a=document.querySelector('.el-image-viewer__actions__inner');
      // $(a).append(`<i class="el-icon-download" onclick="installImage()"></i>`)
      // a.append( `<i class="el-icon-download" onclick="cl()"></i>`)
      console.log(a)
      let ff = document.createElement('i')
      ff.innerHTML = `<i class="el-icon-download" onclick="cl()"></i>`
      a.appendChild(ff)
    },
    downloadIamge(imgsrc, name) {//下載圖片地址和圖片名
      let image = new Image();
      // 解決跨域 Canvas 污染問題
      image.setAttribute("crossOrigin", "anonymous");
      image.onload = function() {
        let canvas = document.createElement("canvas");
        canvas.width = image.width;
        canvas.height = image.height;
        let context = canvas.getContext("2d");
        context.drawImage(image, 0, 0, image.width, image.height);
        let url = canvas.toDataURL("image/png"); //得到圖片的base64編碼數(shù)據(jù)
        let a = document.createElement("a"); // 生成一個a元素
        let event = new MouseEvent("click"); // 創(chuàng)建一個單擊事件
        a.download = name || "photo"; // 設(shè)置圖片名稱
        a.href = url; // 將生成的URL設(shè)置為a.href屬性
        a.dispatchEvent(event); // 觸發(fā)a的單擊事件
      };
      image.src = imgsrc;
    },
}
</script>

感謝各位的閱讀,以上就是“vue中element的el-image圖片預(yù)覽下載功能怎么實現(xiàn)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對vue中element的el-image圖片預(yù)覽下載功能怎么實現(xiàn)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI