You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue动态图片点击绑定src至lightbox的imgSrc属性问题

解决Vue灯箱点击图片绑定src到imgSrc的问题

你只需要在点击事件中传递当前图片的地址,然后在方法里把它赋值给imgSrc即可,具体修改如下:

1. 修改模板中的点击事件

把@click="change"改成传递当前图片的img属性:

<div class="container">
  <div class="image-container">
    <div class="image" v-for="(imagenes, index) in imgBanos" :key="index">
      <!-- 传递当前图片的img地址到change方法 -->
      <img :src="imagenes.img" :id="imagenes.id" @click="change(imagenes.img)">
    </div>
  </div>
  <div class="popup-imag" v-show="show">
    <span @click="reverse">&times;</span>
    <img :src="imgSrc">
  </div>
</div>

2. 修改methods中的change方法

让方法接收传递过来的图片地址,赋值给imgSrc并显示灯箱:

export default {
  data() {
    return {
      show: false,
      imgSrc: "",
      imgBanos: [{
          id: 2,
          img: require("../assets/si/2.jpeg")
        },
        {
          id: 3,
          img: require("../assets/si/3.png")
        },
        ...
      ],
    }
  },
  methods: {
    // 接收图片地址参数
    change(imgUrl) {
      this.imgSrc = imgUrl
      this.show = true
    },
    reverse() {
      this.show = false
    }
  }
}

补充:用索引的方式实现(可选)

如果你想用索引来处理,也可以这么改:

  • 模板中传递索引:@click="change(index)"
  • 方法中通过索引获取图片地址:
change(index) {
  this.imgSrc = this.imgBanos[index].img
  this.show = true
}

这样点击任意图片时,对应的地址就会绑定到灯箱的imgSrc上,灯箱就能正确显示点击的图片了。

内容的提问来源于stack exchange,提问作者learningfromzero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 11:57:15