vue结合原生class类名快速实现背景点击切换并保持

6 篇文章 0 订阅

vue结合原生class类名快速实现背景点击切换并保持

1.实现目标效果 点击切换背景图与文字颜色
在这里插入图片描述
2.css部分代码

.afterActiveTitle {
  color: #ffffff;
  background-image: url("~@/assets/xxx/xxx.png");
  background-size:100% 100% ;
  border-bottom: 2px solid #9bb9f1;
}
.notCheckTitle {
  color: #b1bfd4;
  background: #294061;
  border-bottom: 0;
}

3.html部分代码 这里使用循环v-for会更加美观,为了易于理解,直接挨个修改

    <ul>
      <li @click="gotoHomepage" tabindex="1" :class="{'afterActiveTitle':clickIndex===0,'notCheckTitle':clickIndex!==0}">首页</li>
      <li @click="gotoDate" tabindex="2" :class="{'afterActiveTitle':clickIndex===1,'notCheckTitle':clickIndex!==1}">数据</li>
      <li @click="gotoService" tabindex="3" :class="{'afterActiveTitle':clickIndex===2,'notCheckTitle':clickIndex!==2}">服务</li>
      <li @click="gotoSafe" tabindex="4" :class="{'afterActiveTitle':clickIndex===3,'notCheckTitle':clickIndex!==3}">安全</li>
      <li @click="gotoLog" tabindex="5" :class="{'afterActiveTitle':clickIndex===4,'notCheckTitle':clickIndex!==4}">日志管理</li>
      <li @click="gotoMessage" tabindex="6" :class="{'afterActiveTitle':clickIndex===5,'notCheckTitle':clickIndex!==5}">消息</li>
    </ul>

4.data中参数的设置

  data() {
    return {
      clickIndex:0,  //能够实现默认选中的效果  现在默认选中第一个
    };
  },

5.点击事件对应的方法

    gotoHomepage() {
      this.clickIndex=0;
      this.$router.replace("/Home/xxx");
    },
    gotoDate() {
      this.clickIndex=1;
      this.$router.replace("/Home/xxx/xxx");
    },
    gotoService() {
      this.clickIndex=2;
      this.$router.replace("/Home/xxx");
    },
    gotoSafe() {
      this.clickIndex=3;
      this.$router.replace("/Home/xxx");
    },
    gotoLog() {
      this.clickIndex=4;
      this.$router.replace("/Home/xxxxx");
    },
    gotoMessage() {
      this.clickIndex=5;
      this.$router.replace("/Home/xxx");
    },

6.小结

以上就能够完成在vue项目中利用 :class 对类名进行绑定,从而实现一个好用的点击切换的效果 核心是在每次点击的时候对默认的 tabindex 进行值的修改,结合vue的计算属性实现动态的绑定

7.如果觉得对你有帮助的话点个赞再走吧,彦祖!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值