顶部选项卡插件选中含有下划线

3 篇文章 0 订阅
3 篇文章 0 订阅

直接上代码:

<!--components->

<view class="index_tab">

  <scroll-view class="searchHeader-tab bottom_scroll" hidden="{{showTab}}" scroll-x="true" scroll-left="{{x}}" scroll-with-animation="{{true}}">

      <view wx:for="{{sortArray}}" wx:key="sortArray" class="nav searchHeader-tab-li {{(index == ischoose)?'active':''}}" data-ischoose="{{index}}" catchtap="ischooseChange" >{{item}}</view>

  </scroll-view>

</view>

Component({

  /**

   * 组件的属性列表

   */

  properties: {

    showTab:{type:Boolean,value: false},

    sortArray:{type:Array,value: []},

  },

 

  /**

   * 组件的初始数据

   */

  data: {

    ischoose:0,

  },

 

  /**

   * 组件的方法列表

   */

  methods: {

    ischooseChange:function(e){

      let screenWidth = wx.getSystemInfoSync().windowWidth;

      let itemWidth = screenWidth/5;

      let { ischoose } = e.currentTarget.dataset;

      const { sortArray } = this.data;

      let scrollX = itemWidth * ischoose - itemWidth*2 -30;

      let maxScrollX = (sortArray.length+1) * itemWidth;

      if(scrollX<0){

        scrollX = 0;

      } else if (scrollX >= maxScrollX){

        scrollX = maxScrollX;

      }

      this.setData({

        x: scrollX,

        ischoose:e.target.dataset.ischoose

      })

      this.triggerEvent('ischooseChange', e.target.dataset.ischoose);

    }

   

  }

    

})

.searchHeader-tab {

  width: 88%;

  white-space: nowrap;

  overflow: hidden;

  height: 101rpx;

  display: flex;

  padding:0 30rpx;

  box-shadow: 0px 0px 12rpx 4rpx rgba(102, 102, 102, 0.06);

}

 

.searchHeader-tab .searchHeader-tab-li {

  white-space: nowrap;

  display: inline-block;

  position: relative;

  height: 88rpx;

  line-height: 88rpx;

  z-index: 1;

 

  font-size: 28rpx;

  font-family:" PingFang SC Heavy, PingFang SC Heavy-Heavy";

  font-weight: 800;

  text-align: center;

  color: #ffffff;

  width: 20%;

}

 

.active {

  width: 122rpx;

  font-size: 28rpx;

  font-family: "PingFang SC Heavy, PingFang SC Heavy-Heavy";

  font-weight: 800;

  text-align: center;

  color: #ffffff;

  

}

 

.searchHeader-tab .active:after {

  content: "";

  width: 122rpx;

  height: 10rpx;

  background:#ffffff;

  border-radius: 5rpx;

  position: absolute;

  z-index: -1;

  bottom: 0rpx;

  left: 50%;

  transform: translateX(-50%);

}

后期发demo,到这里吧

效果图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue选项卡的蓝色下划线可以通过设置边框颜色来实现。首先,选择一个边框颜色作为蓝色,比如我选择了#228BE6作为蓝色。这个边框颜色可以在设置中自定义。 接下来,我们需要设置一些约束,以便选项卡可以扩展到任何大小。在“图层”面板中选择tab组件,然后在界面右侧的属性面板中找到约束。约束分为3个框,左边的框是管脚约束,右上方的框和右下方的框是尺寸约束。关闭所有约束,因为我们不想在此处应用任何约束。 然后,选择图标,我们仍然要保持它的宽高比,因此保持尺寸约束打开,但移除所有的管脚约束。如果现在拖动右中间的手柄,你应该可以看到你有一个灵活的选项卡。 对于下划线的样式,可以通过控制颜色来实现。element-ui通过一个独立的元素实现选项卡间切换,因此我们可以将下划线独立为一个元素。可以设置下划线的边框颜色为渐变色,左右两边的颜色透明,中间段的颜色为蓝色。可以通过设置渐变位置的百分比来控制渐变效果。这样就能实现蓝色下划线的效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [layui选项卡嵌套选项卡_在ProtoPie中使用嵌套组件构建选项卡栏](https://blog.csdn.net/weixin_26732881/article/details/108135407)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [关于修改element-ui中Tabs标签页选中标签下划线缩短居中效果的实现方法](https://blog.csdn.net/csdn6107/article/details/126162729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值