vue2封装组件之动态加载标题

1、设计需求

 (1)需要一个可以根据数据的数量和文字不同的产生一个横向的标题

(2)需要鼠标点击之后切换标题颜色并且有下划线

(3)有个默认标题

2、设计思路

(1)两个传值(标题数据和默认显示哪个标题小标)

(2)flex布局设置flex:1自动占满

(3)用伪类::after元素生成下划线

(3)用二元表达控制动态class显示点击后的效果

 3、代码展示

<template>
  <div class="body">
    <div
      class="barList  "
      v-for="(item, index) of list"
      :key="index"
      :class="indexNumber == index ? 'onChenck' : 'outChenck'"
      @click="changebar(index)"
    >
      <div class="barList_item ">
        {{ item }}
      </div>
    </div>
  </div>
</template>
    
  <script scope>
export default {
  data() {
    return {
      indexNumber: 0,
    };
  },
  watch: {},
  props: {
    list: Array,
    chenckIndex: { type: Number, default: 0 },
  },
  components: {},
  mounted() {
    this.indexNumber = this.chenckIndex;
  },
  methods: {
    // 切换标题
    changebar(val) {
      this.indexNumber = val;
    },
  },
};
</script>
        
<style lang="scss">
.body {
  display: flex;
  .barList {
    flex: 1;
    height: 50%;
    display: flex;
    align-self: flex-end;
    flex-direction: column;
    &_item {
      width: 100%;
      height: 100%;
      font-size: 17px;
      font-family: SimHei;
      font-weight: 400;
      display: flex;
      flex-direction: row;
      align-items: center;
      justify-content: center;
    }
  }

  //确认选择样式
  .onChenck {
    color: #30c6cc;
  }
  .onChenck::after {
    content: " ";
    background: #30c6cc;
    width: 34px;
    height: 3px;
    margin: auto;
  }
  .outChenck {
    color: #ffffff;
  }
}
</style>
        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值