V-Viewer常见用法和隐藏img标签或img标签不直接在<viewer>下

岳鸿畴
2023-12-01

v-viewer安装

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作为子标签

在我的项目中,我的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>

隐藏img标签

有时候我们不需把图片展示出来,比如使用 [查看图片] 这样的文字打开图片,这时需要另一种方法打开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打开即可

 类似资料: