Vue v-show控制鼠标移入移出事件的显示与隐藏 记录一下

1.什么是鼠标移入移出事件 我个人理解为鼠标移入或移出某个DIV块时所发生变化的事件,
有点像hover事件。可能有点理解不了
2.可以这么理解,假设div块的内容是123,那么当鼠标经过这个div块时,里面的123内容会变成456,当鼠标
离开时里面的内容又会变成123. 理解的比较土。
3.这次用V-for循环出多个数组并对每一个数组进行显示与隐藏。
4.首先,还是先写一个循环数组。

<template>
 <div>
   <div class='hello' v-for="(arry , index) in itemse" :key="arry.index" :value="arry.value" :label="arry.label">
        <div>{{arry.name}}</div>
        <div>{{arry.text}}</div>
      </div>
 </div>
</template>
<script>
export default {
     data(){
         return{
         itemse:[
         {index:1,name:'苹果',text:'可乐',},
         {index:2,name:'香蕉',text:'雪碧',},
         {index:3,name:'草莓',text:'橙子',},
         ]
         }
     }
}
</script>
<style scoped>
.hello{
     display: inline-block;
     padding: 0px 10px;
}
</style>

写好后,就像下图一样,理一下思路,假定苹果这一行为A,可乐这一行为B ,现在只需要显示一行,就是A显示的同时B隐藏,B显示的同时A隐藏,那么就可以用到鼠标移入移出事件了,页面初始化时A显示B隐藏,当鼠标移入时A隐藏B显示,鼠标移出时又变回原来的样子A显示B隐藏。
在这里插入图片描述
5. @mouseenter=“enters(index)” @mouseleave=“leaver(index)” 前者为移入时的,后者为移出时的
6. 这里根据上面的循环例子,再贴一个。

<template>
  <div>
    <div
      class="hello"
      v-for="(arry , index) in itemse"
      :key="arry.index"
      :value="arry.value"
      :label="arry.label"
      @mouseenter="enters(index)"
      @mouseleave="leaver(index)"
    >
      <div v-show="switchNice[index].arry">{{arry.name}}</div>
      <div v-show="switchNice[index].arrys">{{arry.text}}</div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      itemse: [
        { index: 1, name: "苹果", text: "可乐" },
        { index: 2, name: "香蕉", text: "雪碧" },
        { index: 3, name: "草莓", text: "橙子" }
      ],
      switchNice: [      //这绑定了上面V-show,
        {
          arry: true,
          arrys: false
        },
        {
          arry: true,
          arrys: false
        },
        {
          arry: true,
          arrys: false
        }
      ]
    };
  },
  methods: {
    enters(index) {
      this.switchNice[index].arry = false;   //这里的先后顺序如果写反了 就会一直闪,这是根据上面那个思路写的,
      this.switchNice[index].arrys = true;  //鼠标移入 首先是A先消失,然后B再出现的,写反就会疯狂闪。
    },
    leaver(index) {
      this.switchNice[index].arrys = false;  //移出时也一样,先B消失 再出现A。
      this.switchNice[index].arry = true;
    }
  }
};
</script>
<style scoped>
.hello {
  display: inline-block;
  padding: 0px 10px;
}
</style>

样式就不写了,放个效果图吧,样式可以看我上一篇文章 然后结合使用。
在这里插入图片描述
最后,有不足之处望指出,个人理解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值