vue鼠标悬浮切换文字和图片

Posted ymbcc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue鼠标悬浮切换文字和图片相关的知识,希望对你有一定的参考价值。

今天写页面是需要一个功能,列表全部显示图片,鼠标悬浮后显示文字,未悬浮的显示图片,始终有一项显示为文字

技术图片

 

 

当鼠标悬浮至其他项时,如果不对其他项进行鼠标悬浮操作,鼠标移开后,该项依旧显示文字

技术图片

 

 

 

<div v-for="(item, index) in itemList">
     <lable>{{ item.name }}</lable>
     <lable><img :src="require(‘../../assets/images/base/‘+ item.url + ‘_normal.png‘)"></lable>
 </div>

因为图片是不同的,所以url地址不能写死

在export default 的data中输入以下内容:

url为你图片的url名称

data () {
      return {
        itemList: [
          { index: 1, name: ‘风速‘, url: ‘1033‘ },
          { index: 2, name: ‘空气温度‘, url: ‘1001‘ },
          { index: 3, name: ‘空气湿度‘, url: ‘1002‘ },
          { index: 4, name: ‘露点‘, url: ‘1036‘ },
          { index: 5, name: ‘光照强度‘, url: ‘1030‘ },
          { index: 6, name: ‘紫外线强度‘, url: ‘1031‘ },
          { index: 7, name: ‘光合有效辐射‘, url: ‘1032‘ },
          { index: 8, name: ‘风向‘, url: ‘1034‘ },
          { index: 9, name: ‘雨量‘, url: ‘1035‘ },
        ],
      }
    },

页面将会把所有内容通过v-for循环渲染,

给节点加鼠标悬浮事件,以及label的动态v-show

<div v-for="(item, index) in itemList"
            @mouseenter="enters(index)">    <!--新增鼠标悬浮事件-->
   <lable v-show="switchNice[index].arry">{{ item.name }}</lable> 
   <lable v-show="switchNice[index].arrys"><img :src="require(‘../../assets/images/base/‘+ item.url + ‘_normal.png‘)"></lable>

</div>

<!-- 在data中添加swicthNice,绑定vue中的v-show,swicthNice的数组长度和itemList数组长度一致 -->
switchNice: [
  { arry: true, arrys: false },
  { arry: false, arrys: true },
  { arry: false, arrys: true },
  { arry: false, arrys: true },
  { arry: false, arrys: true },
  { arry: false, arrys: true },
  { arry: false, arrys: true },
  { arry: false, arrys: true },
  { arry: false, arrys: true }
],


methods: {
  
enters(index) {
this.switchNice[index].arrys = false; // 当前鼠标悬浮所在的图片隐藏
for (let m = 0; m < this.switchNice.length; m++) { // 循环switchNice数组
if (m === index) {
this.switchNice[m].arry = true; // 当数组和index相同时,文字显示
} else { // 不同时,图片显示,文字隐藏
this.switchNice[m].arry = false;
this.switchNice[m].arrys = true;
}
}
},

}

 

 

如果需要鼠标悬浮显示文字,鼠标退出,显示图片,可以给div在加一个鼠标离开事件

@mouseleave="leaver(index)
methods: {
  leaver(index) {
    this.switchNice[index].arry = false; // 文字隐藏
   
this.switchNice[index].arrys = true; //图片显示
}, }

上面的鼠标悬浮enters事件也需要改成下列内容

methods: {
  enters(index) {
   this.switchNice[index].arrys = false; //图片隐藏
this.switchNice[index].arry = true; // 文字显示
}, }

 




以上是关于vue鼠标悬浮切换文字和图片的主要内容,如果未能解决你的问题,请参考以下文章

鼠标停留在文字上 出现一个悬浮框!!

IDEA:关闭鼠标悬浮提示

vue 悬浮效果(hover)

elementUI的vue的列表图片悬浮,鼠标移动去图片放大。

Vue案例:图片动态切换效果

css实现当鼠标停留在图片时显示文字 谢谢!