微信小程序顶部滑动tab

向右看齐 2022-06-01 02:06 460阅读 0赞

小程序商品展示需要导航栏的商品分类进行滑动

效果图:

SouthEast

SouthEast 1

首先是滑动的效果:

  1. <scroll-view scroll-x="true" style="width: 100%;white-space:nowrap;">
  2. </scroll-view>

小程序使用,横向移动即可

WXML:这里面我将导航栏显示类目定义为5个,每个20%,当超出5个分类,也就是index>4的时候,导航栏下面的省略号加上(因为tab-nac的border-bottom只能显示到第五个分类)

  1. <scroll-view scroll-x="true" style="width: 100%;white-space:nowrap;">
  2. <!-- tab -->
  3. <view class="tab">
  4. <view class="tab-nav" style='font-size:12px'>
  5. <view wx:for="{
  6. {tabnav.tabitem}}" bindtap="setTab" data-tabindex="{
  7. {index}}" style="min-width:20%;max-width:20%;text-align:center;height: 80rpx;
  8. {
  9. {index>4?'border-bottom: 1rpx dotted #ddd;':''}}">{
  10. {item.text}}</view>
  11. <view >
  12. <view class="tab-line" style="width:{
  13. {100/tabnav.tabnum}}%;transform:translateX({
  14. {100*showtab}}%);"></view>
  15. </view>
  16. </view>
  17. </view>
  18. </scroll-view>

wXSS:

  1. .tab{
  2. display: flex;
  3. flex-direction: column;
  4. }
  5. .tab-nav{
  6. height: 80rpx;
  7. background: #fff;
  8. border-bottom: 0.5rpx dotted #ddd;
  9. display: flex;
  10. line-height: 79rpx;
  11. position: relative;
  12. }
  13. .tab-line{
  14. position: absolute;
  15. left: 0;
  16. bottom: -1rpx;
  17. height: 4rpx;
  18. background: #f7982a;
  19. transition: all 0.3s;
  20. }
  21. .tab-content{
  22. flex: 1;
  23. overflow-y: auto;
  24. overflow-x: hidden;
  25. }

JS:

  1. import util from './../../utils/util.js';
  2. Page({
  3. data: {
  4. showtab: 0, //顶部选项卡索引
  5. tabnav: {
  6. tabnum: 5,
  7. tabitem: [
  8. {
  9. "id": 0,
  10. "text": "商品分类1"
  11. },
  12. {
  13. "id": 1,
  14. "text": "商品分类2"
  15. },
  16. {
  17. "id": 2,
  18. "text": "商品分类3"
  19. },
  20. {
  21. "id": 3,
  22. "text": "商品分类4"
  23. },
  24. {
  25. "id": 4,
  26. "text": "商品分类5"
  27. },
  28. {
  29. "id": 5,
  30. "text": "商品分类6"
  31. },
  32. {
  33. "id": 6,
  34. "text": "商品分类7"
  35. }
  36. ]
  37. },
  38. productList: [],
  39. },
  40. onLoad: function () {
  41. },
  42. setTab: function (e) {
  43. const edata = e.currentTarget.dataset;
  44. this.setData({
  45. showtab: edata.tabindex,
  46. })
  47. },
  48. })

更多文章请关注公众号:每天学Java。想获得更多最新面试提醒请进入小程序:每天学Java

公众号二维码: 小程序二维码:

70 70 1

发表评论

表情:
评论列表 (有 0 条评论,460人围观)

还没有评论,来说两句吧...

相关阅读