npm install v-viewer --save
我是全局使用,在main.js下
import 'viewerjs/dist/viewer.css'
import Viewer from 'v-viewer';
Vue.use(Viewer);
<viewer :images="imgList">
<img v-for="src in imgList" src="src"/>
</viewer>
在我的项目中,我的img被包含在其他组件里,不能被直接包含在标签内,这种情况需要在使用了v-for的父节点使用v-viewer指令
<div class="blog-img-list clearfix" @click.stop="" v-viewer>
<div class="blog-img-item" v-for="(item,index) in imgList" >
<el-image :src="blogImgPath+item" fit="cover" >
<div slot="error" class="image-slot" >
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
</div>
有时候我们不需把图片展示出来,比如使用 [查看图片] 这样的文字打开图片,这时需要另一种方法打开v-viewer
<template>
<span class="img-text">
<el-link v-for="(img,index) in imgList" type="primary" @click="show(index)" >[查看图片]</el-link>
<viewer :images="imgList" class="viewer" ref="viewer"
@inited="inited">
<img v-for="img in imgList" :src="img"/>
</viewer>
</span>
</template>
<script>
export default {
name: "ImageText",
props: ['imgList'],
methods: {
inited (viewer) {
this.$viewer = viewer
},
show(index) {
this.$viewer.view(index)
}
}
}
</script>
<style scoped>
img{
display: none;
}
</style>
隐藏img,并使用$viewer.view传入index打开即可