基于vue實現(xiàn)圖片預覽功能并顯示在彈窗的最上方
更新時間:2024年10月30日 15:23:03 作者:十一吖i
這篇文章主要為大家詳細介紹了如何基于vue實現(xiàn)圖片預覽功能并顯示在彈窗的最上方,感興趣的小伙伴可以跟隨小編一起學習一下
vue 實現(xiàn)圖片預覽功能并顯示在彈窗的最上方
1.在 components 下新建一個文件夾 ImagePreview
使用 preview-teleported 來實現(xiàn)圖片穿透功能 讓預覽的圖片顯示在最上方
代碼如下:
<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)注冊組件
import ImagePreview from "@/components/ImagePreview"
// 全局組件掛載
app.component('ImagePreview', ImagePreview)
3.在頁面使用
<image-preview :src="images" style="height: 60px;width:60px;" />
到此這篇關(guān)于基于vue實現(xiàn)圖片預覽功能并顯示在彈窗的最上方的文章就介紹到這了,更多相關(guān)vue圖片預覽內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue中使用Element的Table組件實現(xiàn)嵌套表格
本文主要介紹了Vue中使用Element的Table組件實現(xiàn)嵌套表格,通過type="expand"設(shè)置了一個展開按鈕,點擊該按鈕會顯示與當前行關(guān)聯(lián)的子表格內(nèi)容,感興趣的可以了解一下2024-01-01
使用Vue3實現(xiàn)倒計時器及倒計時任務(wù)的完整代碼
文章介紹了如何使用Vue3和Element-plus開發(fā)一個倒計時器和倒計時任務(wù)管理界面,倒計時器具備手動設(shè)置、開始、暫停和重啟功能,文章還提供了倒計時器的完整代碼,包括HTML、JavaScript和CSS部分,感興趣的朋友一起看看吧2024-11-11

