Vue实现选项卡demo

如图所示:

<template>
  <div class="news_wrap">
    <ul class="news_title">
      <li
        v-for="(item, index) in items"
        :key="index"
        :class="{ activeShow: activeIndex === index }"
        @click="currentHandel(index)"
      >
        <svg class="icon" aria-hidden="true">
          <use
            v-if="activeIndex === index"
            :xlink:href="'#icon-' + item.activeIcon"
          ></use>
          <use v-else :xlink:href="'#icon-' + item.icon"></use>
        </svg>
        <span>{{ item.title }}</span>
      </li>
    </ul>
    <ul class="news_content">
      <li
        v-for="(item, index) in contents"
        :key="index"
        v-show="activeIndex === index"
      >
        {{ item.content }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      activeIndex: 0,
      items: [
        { title: "新闻", icon: "xinwen", activeIcon: "xinwen11" },
        { title: "公告", icon: "gonggaopai", activeIcon: "gonggaopai1" },
        { title: "通知", icon: "tongzhi2", activeIcon: "tongzhi11" },
      ],
      contents: [{ content: "1111" }, { content: "2222" }, { content: "3333" }],
    };
  },
  created() {},
  mounted() {},
  methods: {
    currentHandel(index) {
      this.activeIndex = index;
    },
  },
};
</script>

<style scoped lang="scss">
.news_wrap {
  display: flex;
  padding-top: 12px;
  .news_title {
    width: 156px;
    margin-right: 16px;
    li {
      display: flex;
      align-items: center;
      padding: 10px 0px;
      padding-left: 24px;
      cursor: pointer;
      .icon {
        width: 16px;
        height: 16px;
      }
      span {
        font-size: 14px;
        font-family: PingFangSC, PingFangSC-Regular;
        font-weight: 400;
        color: #646a73;
        line-height: 20px;
        letter-spacing: 1px;
        margin-left: 15px;
      }
      &.activeShow {
        background: #edf3ff;
        span {
          color: #4273f6;
        }
      }
    }
  }
  .news_content {
    flex: auto;
  }
}
</style>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值