可以使用Vue的computed属性和样式绑定来实现图片点击按钮高亮显示、其他变灰的效果。

首先,需要在data中定义一个变量来保存当前被选中的图片的index:

data() {
  return {
    currentIndex: -1,
    // 其他图片的数据...
  }
}

然后,在模板中对每个图片绑定一个点击事件,当点击图片时,将当前图片的index赋值给currentIndex:

<div v-for="(item, index) in images" :key="index" @click="currentIndex = index">
  <img :src="item.src" :class="{ active: currentIndex === index }">
</div>

这里,使用:class来动态绑定图片的class,当currentIndex等于当前图片的index时,添加一个名为active的class,用于高亮显示。

最后,使用computed属性来计算其他图片的样式,根据currentIndex的值来判断是否为当前选中的图片,如果不是,则添加一个名为grey的class,用于变灰显示:

computed: {
  otherImageStyle() {
    return (index) => {
      return {
        'filter': this.currentIndex === index ? 'none' : 'grayscale(100%)'
      }
    }
  }
}

这里,使用箭头函数来返回一个函数,该函数接受一个图片的index参数,返回一个样式对象,根据currentIndex的值来判断是否为当前选中的图片,如果是,则不添加任何样式,否则添加一个名为grey的class,用于变灰显示。

最后,在模板中使用v-bind来绑定其他图片的样式:

<div v-for="(item, index) in images" :key="index" @click="currentIndex = index">
  <img :src="item.src" :class="{ active: currentIndex === index }" :style="otherImageStyle(index)">
</div>

这样,当点击某个图片时,该图片会高亮显示,其他图片会变灰显示。

vue图片点击按钮高亮显示其他变灰回答加拓展。

原文地址: https://www.cveoy.top/t/topic/H9k 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录