微信小程序使用swiper制作左右滑动tabs导航

首先我们先来看一下效果吧

wxml

<!-- 组合按钮导航 S -->
      <swiper class="tabs-nav">
        <swiper-item wx:for="{{tabs}}" wx:key="index">
          <view class="navigation">
            <block wx:for="{{tabs[index]}}" wx:key="num" bindtap="signInShow">
              <view class="nav-bottom" data-index="{{index}}" bindtap="chooseMenu">
                <image class="nav-icon" src="{{item.tabBtn}}"></image>
                <text class="navigation-size" data-title="{{item.title}}">{{item.title}}</text>
              </view>
            </block>
          </view>
          <!-- 按钮导航 E -->
        </swiper-item>
      </swiper>
      <!-- 组合按钮导航 E -->

wxss

/* tabs-nav */
.tabs-nav {
  width: 100%; 
  height: 442rpx;
  background: #ffffff;
  border-radius: 10rpx;
}
.navigation {
  padding: 44rpx 15rpx 2rpx;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-around;
}
.navigation .nav-bottom {
  margin-bottom: 42rpx;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 120rpx; 
}
.nav-icon {
  width:100rpx; 
  height:100rpx
}
.navigation .navigation-size {
  font-size: 35rpx;
  margin-top: 16rpx;
  color: #000
}

最后一部分,js,主要看数据结构

tabs: [
      [{
          title: "体验",
          tabBtn: "../../img/tabs/tabs_1.png"
        },
        {
          title: "秒杀",
          tabBtn: "../../img/tabs/tabs_2.png"
        },
        {
          title: "兑换",
          tabBtn: "../../img/tabs/tabs_3.png"
        },
        {
          title: "拼团",
          tabBtn: "../../img/tabs/tabs_4.png"
        },
        {
          title: "乐购",
          tabBtn: "../../img/tabs/tabs_5.png"
        },
        {
          title: "签到",
          tabBtn: "../../img/tabs/tabs_6.png"
        },
        {
          title: "店铺街",
          tabBtn: "../../img/tabs/tabs_7.png"
        },
        {
          title: "社区",
          tabBtn: "../../img/tabs/tabs_8.png"
        },
        {
          title: "星球",
          tabBtn: "../../img/tabs/tabs_9.png"
        },
        {
          title: "邀请",
          tabBtn: "../../img/tabs/tabs_10.png"
        }
      ],
       [{
          title: "体验",
          tabBtn: "../../img/tabs/tabs_1.png"
        },
        {
          title: "秒杀",
          tabBtn: "../../img/tabs/tabs_2.png"
        },
        {
          title: "兑换",
          tabBtn: "../../img/tabs/tabs_3.png"
        },
        {
          title: "拼团",
          tabBtn: "../../img/tabs/tabs_4.png"
        },
        {
          title: "乐购",
          tabBtn: "../../img/tabs/tabs_5.png"
        },
        {
          title: "签到",
          tabBtn: "../../img/tabs/tabs_6.png"
        },
        {
          title: "店铺街",
          tabBtn: "../../img/tabs/tabs_7.png"
        },
        {
          title: "社区",
          tabBtn: "../../img/tabs/tabs_8.png"
        },
        {
          title: "星球",
          tabBtn: "../../img/tabs/tabs_9.png"
        },
        {
          title: "邀请",
          tabBtn: "../../img/tabs/tabs_10.png"
        }
      ]
    ],

以上就是效果的所有代码

最后加上点击事件吧

// 按钮菜单点击
  chooseMenu: function(e) {
    var index = e.currentTarget.dataset.index;
    if (index == 0) {
      wx.navigateTo({
        url: '../commodity/commodity-experience-list/index',
      })
    }
    if (index == 1) {
      wx.navigateTo({
        url: '../commodity/commodity-tesco-list/index',
      })
    }
    if (index == 2) {
      wx.navigateTo({
        url: '../commodity/commodity-exchange-list/index',
      })
    }
    if (index == 3) {
      wx.navigateTo({
        url: '../commodity/commodity-time-limit/index',
      })
    }
    if (index == 4) {
      wx.navigateTo({
        url: '../commodity/commodity-share-the-bill-list/index',
      })
    }
    if(index == 5) {
      // 每日签到隐藏
      this.setData({
        signInFrame: true,
      })
    }
    if (index == 6) {
      wx.navigateTo({
        url: '../my/my-generalize/index',
      })
    }
    if (index == 7) {
      wx.navigateTo({
        url: '../commodity/commodity-exclusive-list/index',
      })
    }
    if (index == 8) {
      wx.navigateTo({
        url: '../shop/shop-list/index',
      })
    }
    if (index == 9) {
      wx.switchTab({
        url: '../commodity/goods-category/index',
      })
    }
  },

转载:微信小程序使用swiper制作左右滑动tabs导航_wx632c389d20748的技术博客_51CTO博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,可以使用swiper和scroll-view组件来实现微信小程序左右分页功能。 首先,在wxml文件中添加swiper和scroll-view组件,并设置相应的属性。 ```html <swiper class="swiper-container" current="{{current}}" duration="{{500}}" style="height:{{pageHeight}}px"> <swiper-item> <scroll-view class="scroll-view" scroll-x="{{true}}" scroll-y="{{false}}" style="width:{{windowWidth}}px;height:{{pageHeight}}px;"> <!--第一页内容--> </scroll-view> </swiper-item> <swiper-item> <scroll-view class="scroll-view" scroll-x="{{true}}" scroll-y="{{false}}" style="width:{{windowWidth}}px;height:{{pageHeight}}px;"> <!--第二页内容--> </scroll-view> </swiper-item> <!--更多swiper-item--> </swiper> ``` 其中,swiper组件设置了current属性,用于控制当前显示的页码;scroll-view组件设置了scroll-x属性,用于开启水平方向的滚动,并设置了样式宽度为屏幕宽度,高度为页面高度。 接着,在js文件中,监听swiper组件的change事件,用于动态更新当前页码。 ```javascript Page({ data: { current: 0, windowWidth: wx.getSystemInfoSync().windowWidth, pageHeight: wx.getSystemInfoSync().windowHeight }, onLoad: function () { //... }, onPageChange: function (e) { this.setData({ current: e.detail.current }) } }) ``` 最后,在样式文件中,设置swiper-container和scroll-view的样式,用于实现左右分页效果。 ```css .swiper-container { overflow: hidden; position: relative; } .scroll-view { white-space: nowrap; } .swiper-item { display: inline-block; vertical-align: top; width: 100%; } ``` 以上就是使用swiper和scroll-view组件实现微信小程序左右分页功能的方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值