基于vue實(shí)現(xiàn)圖片預(yù)覽功能并顯示在彈窗的最上方
vue 實(shí)現(xiàn)圖片預(yù)覽功能并顯示在彈窗的最上方
1.在 components
下新建一個(gè)文件夾 ImagePreview
使用 preview-teleported 來(lái)實(shí)現(xiàn)圖片穿透功能 讓預(yù)覽的圖片顯示在最上方
代碼如下:
<template> <el-image :src="`${realSrc}`" fit="cover" :style="`width:${realWidth};height:${realHeight};`" :preview-src-list="realSrcList" preview-teleported > <template #error> <div class="image-slot"> <el-icon><picture-filled /></el-icon> </div> </template> </el-image> </template> <script setup> import { isExternal } from "@/utils/validate"; const props = defineProps({ src: { type: String, default: "" }, width: { type: [Number, String], default: "" }, height: { type: [Number, String], default: "" } }); const realSrc = computed(() => { if (!props.src) { return; } let real_src = props.src.split(",")[0]; if (isExternal(real_src)) { return real_src; } return import.meta.env.VITE_APP_BASE_API + real_src; }); const realSrcList = computed(() => { if (!props.src) { return; } let real_src_list = props.src.split(","); let srcList = []; real_src_list.forEach(item => { if (isExternal(item)) { return srcList.push(item); } return srcList.push(import.meta.env.VITE_APP_BASE_API + item); }); return srcList; }); const realWidth = computed(() => typeof props.width == "string" ? props.width : `${props.width}px` ); const realHeight = computed(() => typeof props.height == "string" ? props.height : `${props.height}px` ); </script> <style lang="scss" scoped> .el-image { border-radius: 5px; background-color: #ebeef5; box-shadow: 0 0 5px 1px #ccc; :deep(.el-image__inner) { transition: all 0.3s; cursor: pointer; &:hover { transform: scale(1.2); } } :deep(.image-slot) { display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; color: #909399; font-size: 30px; } } </style>
2.在 main.js
內(nèi)注冊(cè)組件
import ImagePreview from "@/components/ImagePreview" // 全局組件掛載 app.component('ImagePreview', ImagePreview)
3.在頁(yè)面使用
<image-preview :src="images" style="height: 60px;width:60px;" />
到此這篇關(guān)于基于vue實(shí)現(xiàn)圖片預(yù)覽功能并顯示在彈窗的最上方的文章就介紹到這了,更多相關(guān)vue圖片預(yù)覽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue中使用Element的Table組件實(shí)現(xiàn)嵌套表格
本文主要介紹了Vue中使用Element的Table組件實(shí)現(xiàn)嵌套表格,通過(guò)type="expand"設(shè)置了一個(gè)展開(kāi)按鈕,點(diǎn)擊該按鈕會(huì)顯示與當(dāng)前行關(guān)聯(lián)的子表格內(nèi)容,感興趣的可以了解一下2024-01-01van-dialog 組件調(diào)用報(bào)錯(cuò)的解決
這篇文章主要介紹了van-dialog 組件調(diào)用報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05Vue引入ElementUI并使用的詳細(xì)過(guò)程
Element UI是一個(gè)基于Vue 2.0的桌面端組件庫(kù),旨在構(gòu)建簡(jiǎn)潔、快速的用戶(hù)界面,這篇文章主要介紹了Vue如何引入ElementUI并使用,需要的朋友可以參考下2024-06-06使用Vue3實(shí)現(xiàn)倒計(jì)時(shí)器及倒計(jì)時(shí)任務(wù)的完整代碼
文章介紹了如何使用Vue3和Element-plus開(kāi)發(fā)一個(gè)倒計(jì)時(shí)器和倒計(jì)時(shí)任務(wù)管理界面,倒計(jì)時(shí)器具備手動(dòng)設(shè)置、開(kāi)始、暫停和重啟功能,文章還提供了倒計(jì)時(shí)器的完整代碼,包括HTML、JavaScript和CSS部分,感興趣的朋友一起看看吧2024-11-11使用ElementUI修改el-tabs標(biāo)簽頁(yè)組件樣式
這篇文章主要介紹了使用ElementUI修改el-tabs標(biāo)簽頁(yè)組件樣式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08