多个相邻按钮共用边框切换效果

多个相邻按钮共用边框切换效果


在这里插入图片描述
下图所示的是一种常见的切换效果,当拿到需求时,没经过大脑思考的我,准备‘搬砖’(敲代码)发现实现起来真不容易,尤其相邻按钮之间共用的一条边真是不好搞呢/(ㄒoㄒ)/~~

经过我不懈努力的百度+请教别人,终于有以下成果了,如果小伙伴有更好的方法记得告诉我哦(●’◡’●)

<template>
  <div style="height: 100%">
    <div class="tab-title-box clearfix">
      <p  data-id="all">集团</p>
      <p data-id="my">板块</p>
      <p data-id="my">产业</p>
      <p data-id="my">事业部</p>
      <p data-id="my">业务单元</p>
    </div>
  </div>
</template>

<script>
  export default {
    name: "DotLoader",
    data() {
      return {
       
      }
    },

    mounted() {
      document.querySelectorAll('.tab-title-box p').forEach(item=>{
        item.addEventListener('click',function(){
          console.log(this,'this')
          // 给点击的元素添加类名
          this.classList.toggle('active')
          // 上一个兄弟元素
          let prev = this.previousElementSibling
          // 下一个兄弟元素
          let next = this.nextElementSibling
          // 上一个兄弟元素没有,视为点击的第一个,取消左边添加的边框
          if(!prev){
            this.classList.toggle('bd-left-color')
          }else{
            prev.classList.toggle('bd-right-color')
          }
          if(next){
            //
            this.classList.toggle('bd-right-color')
          }
        })
      })
    },
    methods: {
    
    },

  };
</script>

<style lang="scss" scoped>
  .tab-title-box {
    width: 50%;
    padding: 6px;
    display: flex;

  }
  .tab-title-box p {
    flex:1;
    /* width: 50%; */
    float: left;
    height: 100%;
    text-align: center;
    padding: 8px 0;
    font-size: 14px;
    font-weight: 400;
    color: #E82323;
    background: #FFFFFF;
    border:1px solid #E82323;
    border-left:0px
  }
  .tab-title-box p:first-child{
    border-left:1px solid #E82323;
  }
  .tab-title-box .active{
    color:#B9BCC5;
    border-color:#B9BCC5;
  }
  .tab-title-box p.bd-left-color{
    border-left-color:#B9BCC5;
  }
  .tab-title-box p.bd-right-color{
    border-right-color:#E82323;
  }
</style>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值