Vue动态绑定class实现选中标签样式

Vue动态绑定class实现选中标签样式设置选中标签样式在筛选列表中,当标签处于活跃时,需给定不同样式<template><divclass=”category-selector”><ulclass=”sort-type”><liv-for=”(item,index)insortTypeTag”:key=”index”><ahref=”javascript:void(0);”@click=”changeSortType(it

大家好,欢迎来到IT知识分享网。Vue动态绑定class实现选中标签样式"

设置选中标签样式

在筛选列表中,当标签处于活跃时,需给定不同样式

<template>
  <div class="category-selector">
    <ul class="sort-type">
      <li v-for="(item, index) in sortTypeTag" :key="index">
        <a href="javascript:void(0);" @click="changeSortType(item.id, index)" :class="{ active: sortIsActive == index }">
          {
  
  { item.name }}
        </a>
      </li>
    </ul>
  </div>
</template>

<script>
// 事件总线,组件内通信,用于处理当电影分类组件中选项改变时,在电影列表组件内改变对应参数调用后台接口,在这里可以不用管
import { EventBus } from "../../../event-bus"
  
export defalut {
  data() {
		return {
      sortTypeTag: [
        { name: "推时间", id: 1 },
        { name: "推评分", id: 2 },
        { name: "喜欢数", id: 3 },
        { name: "新上线", id: 4 }
      ],
      
      // 默认选中第一个标签,因为第一个标签的index = 0,所以此时第一个标签的sortIsActive === index
      sortIsActive: 0,
    },
      
    methods: {
      changeSortType(id, index) {
        this.sortType = id;
        EventBus.$emit("getMovie", this.sortType, this.regionId, this.type, this.movieDate, this.watchType);
        // 关键,在这里将sortIsActive改为各标签对应的index值,实现动态改变class
        this.sortIsActive = index;
      },      
    }
  }
}
</script>

<style scoped>
ul>li>a {
  height: 2rem;
  line-height: 2rem;
  padding: 0.8rem 1rem;
}

ul>li>a:link {
	font-size: 1rem;
	color: #707070;
}
 
ul>li>a:hover {
	color: #ed9d36;
}

/* 处于活跃状态的样式 */
ul>li>.active {
  border-radius: 45%;
	background-color: #f4f4f4;
  color: #ed9d36 !important;
}
</style>

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/21642.html

(0)
上一篇 2024-01-16 12:33
下一篇 2024-01-17 17:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信