【Vant Weapp】van-tab 标签页

这篇具有很好参考价值的文章主要介绍了【Vant Weapp】van-tab 标签页。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

激活条颜色

自定义右侧内容

tab切换列表回到顶部

使用sticky粘性布局导致遮挡

tab标题角标为0不展示

tab页中按钮固定在页面底部


激活条颜色

 【Vant Weapp】van-tab 标签页

.van-tabs__line {
  background-color: #3552E3 !important;
}

自定义右侧内容

【Vant Weapp】van-tab 标签页

【Vant Weapp】van-tab 标签页

<van-tabs active="{{ active }}" swipeable bind:click='handleTab' ellipsis="{{false}}">
  <!-- 右侧筛选 -->
  <view class="filter" slot="nav-right" bindtap="onOpenChange">
    <image class="img" src="@/assets/images/filter.png" mode="aspectFit"></image>
  </view>
  
  <van-tab wx:for-items="{{tabs}}" wx:key='id' title='{{item.day}}' name="{{item.id}}">
      //......
  </van-tab>
</van-tabs>
.filter {
  background: #fff;
  display: flex;
  align-items: center;
}

.img {
  height: 32rpx;
  width: 32rpx;
  padding:26rpx 20rpx;
}

.van-tabs__line {
  background-color: #4c66da !important;
}
data:{
  tabs: [
    {
      day: '购入',
      id: 1
    },
    {
      day: '销售',
      id: 2
    },
  ],
  activeTab: 1,

}
handleTab(e) {
  this.setData({
    activeTab: e.detail.name
  })

  this.getList()
},

onOpenChange() {
  // 筛选操作
},

tab切换列表回到顶部

tab页中内容上下滚动后, 再切换tab页签时滚动位置总是同步一致。

【Vant Weapp】van-tab 标签页

 期待效果:

【Vant Weapp】van-tab 标签页

解决方法:切换tab后,利用wx.pageScrollTo跑到顶部。 

<van-tabs active="{{ active }}" bind:change="onChange"  sticky>
  <van-tab title="标签 1"><view wx:for="{{50}}" wx:key="item"> {{item}} </view></van-tab>
  <van-tab title="标签 2"><view wx:for="{{208}}" wx:key="item"> {{item}} </view></van-tab>
  <van-tab title="标签 3"></van-tab>
</van-tabs>
data: {
    active: 1,
    page: 1,
},
 onChange: function (e) {
    // 初始化
    let idx = e.detail.index
    this.setData({
      active: idx,
      page: 1
    })
    
    // 回到顶部
    wx.pageScrollTo({
      duration: 0,
      scrollTop: 0,
    })
    
    // 获取数据
    this.getList(page);
},

使用sticky粘性布局导致遮挡

往上滑动,标题要浮动上去。若是滚动到最顶部,没法复原,致使遮挡。

【Vant Weapp】van-tab 标签页

期待效果:

 【Vant Weapp】van-tab 标签页

解决方案:使用 createSelectorQuery 方法获取到dom元素的距离顶部的 top 值,如果top 值小于等于0,就说明已经固定到顶部了,这个时候就可以在列表页添加一个距离顶部的边距。

【Vant Weapp】van-tab 标签页

<view wx:for="{{arr}}" wx:key="item"> {{item}} </view>

<van-tabs id="activetab" active="{{ active }}" bind:change="onChange"  sticky >
  <van-tab title="标签 1">
    <view class="{{scrollTop ? 'scrollTop' : ''}}">
      <view wx:for="{{50}}" wx:key="item"> {{item}} </view>
    </view>
  </van-tab>
  <van-tab title="标签 2"></van-tab>
</van-tabs>
data: {
  arr:['a','b','c','a','b','c','a','b','c','a','b','c'],
  scrollTop:false
},
//监听页面滚动
onPageScroll(event) {
  let that = this;
  const query = that.createSelectorQuery();
  query.select('#activetab').boundingClientRect();
  query.selectViewport().scrollOffset();
  query.exec(function(res){
    console.log(res[0])
    that.setData({
      scrollTop: res[0].top <= 0
    })
  })
}

tab标题角标为0不展示

 【Vant Weapp】van-tab 标签页

info="{{arr.length > 0 ? arr.length : Boolean(false)}}"

<van-tabs active="{{ active }}" bind:change="onChange">
  <van-tab title="标签 1" info="{{arr.length > 0 ? arr.length : Boolean(false)}}">
    <view wx:for="{{arr}}" wx:key="item"> {{item}} </view>
  </van-tab>
  <van-tab title="标签 2" info="{{arr2.length > 0 ? arr2.length : Boolean(false)}}">内容 2</van-tab>
</van-tabs>
data: {
  active:1,
  arr:[1,2,3,4,5,6,7],
  arr2:[]
},

tab页中按钮固定在页面底部

【Vant Weapp】van-tab 标签页文章来源地址https://www.toymoban.com/news/detail-426477.html

<van-tabs active="{{ active }}" sticky bind:change="onChange">
  <van-tab title="标签 1" name="1">
    <view wx:for="{{50}}" wx:key="item"> {{item}} </view>
    
    <!-- 按钮 -->
    <view class="btn" wx:if="{{active == 1}}">提交</view>
     
  </van-tab>
  <van-tab title="标签 2" name="2">内容 2</van-tab>
</van-tabs>
.btn {
  position:fixed;
  bottom: 0;
  left:0;
  height: 80rpx;
  line-height: 80rpx;
  width: 100vw;
  text-align:center;
  background: red;
}
data: {
    active: '1',
}
onChange(event) {
  this.setData({
    active: event.detail.name
  })
},

到了这里,关于【Vant Weapp】van-tab 标签页的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包