Vue中使用v-viewer,打开图片指定显示某一张图片

在vue中使用v-viewer,点击图片后默认会显示第一张图片,通过this.$nextTick(()=>{this.$viewer.update().view(vindex)}) 指定显示某张图片

html中 

<viewer :options="preview_options" :images="images" @inited="initedViewer" class="image_previewer" ref="viewer">
    <template slot-scope="scope">
        <img v-for="src in scope.images" :src="src" :key="src">
        {{scope.preview_options}}
    </template>
</viewer> 

 js中

initedViewer (viewer) {
    this.$viewer = viewer
},

//显示图片
previewImage(message) {
    let images = []
    let vindex = -1
    this.current_session.messages.forEach(msg=>{
        if( msg.type == 'image' && !images.includes(msg.content.url)) {
            images.push(msg.content.url)
            if( message == msg ) {
               vindex = images.length -1
            }
        }
    })
            
    this.images = images;

    //只调用$viewer的show方法,默认显示第一张图片
    //如果需要指定显示某一张图片使用view方法,index是指定的那张图片所在数组的位置索引
    //但是只用view方法,第一次点击图片时会显示图片数组中的第一个图片,再次点击就会正常
    //使用update()更新视图然后再指定图片,这样就能出现指定的图片啦

    if( vindex > -1 ) {
        this.$nextTick(()=>{
            this.$viewer.update().view(vindex)
        })
    }
    this.$viewer.show()
},

参考文档:

vue中实现图片预览放大,缩小,旋转等功能,Viewer.js第一次点击图片无法显示(vue使用)_viewer不显示缩略图vue_雯雯1688的博客-CSDN博客 

v-viewer图片预览插件的使用 - 简书

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值