vue+elementui 做的一个图片放大预览组件
基于element-ui中自带的一个组件(el-image-viewer)可自行去对应文件目录查看// preview.vue<template><el-image-viewerv-if="showPreview":urlList="previewImages":on-close="closeViewer"></el-image-viewer></temp
·
基于element-ui中自带的一个组件(el-image-viewer)
可自行去对应文件目录查看(node_modules/element-ui/packages/image/src/image-viewer)
// preview.vue
<template>
<el-image-viewer
v-if="showPreview"
:urlList="previewImages"
:on-close="closeViewer"
></el-image-viewer>
</template>
<script>
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
export default {
data() {
return {
showPreview: false,
previewImages: []
};
},
components: {
ElImageViewer
},
methods: {
closeViewer() {
this.showPreview = false;
}
}
};
</script>
// preview.js
import PreviewItem from "./preview.vue";
const Preview = {};
// 注册
Preview.install = function(Vue) {
const PreviewConstructor = Vue.extend(PreviewItem);
const instance = new PreviewConstructor();
instance.$mount(document.createElement("div"));
document.body.appendChild(instance.$el);
/**
* 挂载在vue原型上
* @param {Array} imgs 需要预览的图片数组
*/
Vue.prototype.$openPreview = function(imgs = []) {
instance.showPreview = true;
instance.previewImages = imgs;
};
};
export default Preview;
// 在main.js中引入
import Preview from "@/components/PreviewItem/preview.js";
Vue.use(Preview);
// 在vue文件中调用
this.$openPreview(['http://...image-url.png'])
el-image组件中的图片放大功能其实就是基于el-image-viewer来使用的
更多推荐
已为社区贡献2条内容
所有评论(0)