微信小程序导航条

wxml部分:

<!-- 复制一下看看 -->
<!--导航条-->
<scroll-view class="scroll-view" scroll-x="true" style="width: 100%;white-space:nowrap;">

  <view class="navbar">
    <text wx:for="{{navbar}}" data-idx="{{index}}" class="item {{currentTab==index ? 'active' : ''}}" wx:key="unique"
      bindtap="navbarTap">{{item}}</text>
  </view>

</scroll-view>

<swiper class="order" bindchange="scroll" current="{{currentTab}}" autoplay="{{false}}"
  style="width:{{sys_width}}px;height:{{sys_height}}px">


  <!--全部-->
  <swiper-item scroll-y="{{true}}" style="width:{{sys_width}}px;height:{{sys_height}}px;overflow: scroll;"
    class="swiper-item">

    <view class="list" wx:for="{{list}}">
      <view class="ima">
        <image src="{{item.image}}" mode="aspectFill"></image>
      </view>

      <view class="tex">
        <text class="name">{{item.name}}</text>
        <text class="estate">{{item.estate}}</text>
        <text class="date">{{item.date}}</text>
      </view>
    </view>

    <view class="list2" wx:for="{{list2}}">

      <view class="ima">
        <image src="{{item.image}}" mode="aspectFill"></image>
      </view>

      <view class="tex">
        <text class="name">{{item.name}}</text>
        <text class="estate-2">{{item.estate2}}</text>
        <text class="date">{{item.date}}</text>
      </view>

    </view>

  </swiper-item>

  <!--借书单-->
  <swiper-item scroll-y="{{true}}" style="width:{{sys_width}}px;height:{{sys_height}}px;overflow: scroll;">
    <text>这是借书单。这是借书单。这是借书单。这是借书单。
      \n这是借书单。这是借书单。
      \n这是借书单。这是借书单。这是借书单。这是借书单。这是借书单。
      \n这是借书单。这是借书单。这是借书单。
    </text>
  </swiper-item>

  <!--买书单-->
  <swiper-item scroll-y="{{true}}" style="width:{{sys_width}}px;height:{{sys_height}}px;overflow: scroll;">
    这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。这是买书单。
  </swiper-item>

</swiper>


wxss部分:


/* 页面总体布局 */
.order{
  padding-left:26rpx;
  padding-right: 26rpx;
  padding-top: 12rpx;
  box-sizing: border-box;
  background-color: #dbdbdb85;
}
/* 单个书单 */
.list, .list2 {
  background-color: white;
  border-radius: 10rpx;
  display: flex;
  padding: 18rpx;
  box-sizing: border-box;
  margin-bottom: 12rpx;
}

.ima image {
  width: 80rpx;
  height: 120rpx;
  border-radius: 8rpx;
  overflow: hidden;
}

.ima {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
}

.tex {
  display: flex;
  flex-direction: column;
  flex: 5;
  padding-left: 24rpx;
  box-sizing: border-box;
}

.name {
  font-size: 34rpx;
}

.estate {
  font-size: 24rpx;
}

.estate-2 {
  font-size: 24rpx;
  color: rgb(146, 224, 159);
}

.date {
  font-size: 24rpx;
  color: #ccc;
}

/* 这还是复制 */
page {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.navbar {
  flex: none;
  display: flex;
  background: #fff;
  border-radius: 10rpx;
}

.navbar .item {
  position: relative;
  flex: auto;
  text-align: center;
  line-height: 80rpx;
}

.navbar .item.active {
  color: green;
}

.navbar .item.active:after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 4rpx;
  background: green;
}



JS部分:

// 这仍然是复制(手动滑稽)

const app = getApp()
Page({
  data: {
    navbar: ['全部', '借书单', '买书单'],
    currentTab: 0,
    
    // 获取当前使用手机的宽高,以展示页面宽高
    sys_width:app.globalData.sys_info.windowWidth,
    sys_height:app.globalData.sys_info.windowHeight,

    list: [{
      image: "https://i0.hdslb.com/bfs/bangumi/image/7ead54c7d4dcf6b0eb5b80e26c3cbdc34854f436.jpg@165w_210h.jpg",
      name: "JAVA基础入门",
      estate: "剩余12天1小时",
      date: "借书时间: 10月8日 17:13"
    },
    {
      image: "https://i0.hdslb.com/bfs/bangumi/image/7ead54c7d4dcf6b0eb5b80e26c3cbdc34854f436.jpg@165w_210h.jpg",
      name: "JAVA基础入门",
      estate: "剩余12天1小时",
      date: "借书时间: 10月8日 17:13"
    },
    {
      image: "https://i0.hdslb.com/bfs/bangumi/image/7ead54c7d4dcf6b0eb5b80e26c3cbdc34854f436.jpg@165w_210h.jpg",
      name: "JAVA基础入门",
      estate: "剩余12天1小时",
      date: "借书时间: 10月8日 17:13"
    },
    {
      image: "https://i0.hdslb.com/bfs/bangumi/image/7ead54c7d4dcf6b0eb5b80e26c3cbdc34854f436.jpg@165w_210h.jpg",
      name: "JAVA基础入门",
      estate: "剩余12天1小时",
      date: "借书时间: 10月8日 17:13"
    },
    {
      image: "https://i0.hdslb.com/bfs/bangumi/image/7ead54c7d4dcf6b0eb5b80e26c3cbdc34854f436.jpg@165w_210h.jpg",
      name: "JAVA基础入门",
      estate: "剩余12天1小时",
      date: "借书时间: 10月8日 17:13"
    },
    {
      image: "https://i0.hdslb.com/bfs/bangumi/image/7ead54c7d4dcf6b0eb5b80e26c3cbdc34854f436.jpg@165w_210h.jpg",
      name: "JAVA基础入门",
      estate: "剩余12天1小时",
      date: "借书时间: 10月8日 17:13"
    },
    {
      image: "https://i0.hdslb.com/bfs/bangumi/image/7ead54c7d4dcf6b0eb5b80e26c3cbdc34854f436.jpg@165w_210h.jpg",
      name: "JAVA基础入门",
      estate: "剩余12天1小时",
      date: "借书时间: 10月8日 17:13"
    },
    {
      image: "https://i0.hdslb.com/bfs/bangumi/image/7ead54c7d4dcf6b0eb5b80e26c3cbdc34854f436.jpg@165w_210h.jpg",
      name: "JAVA基础入门",
      estate: "剩余12天1小时",
      date: "借书时间: 10月8日 17:13"
    },
    {
      image: "https://i0.hdslb.com/bfs/bangumi/image/7ead54c7d4dcf6b0eb5b80e26c3cbdc34854f436.jpg@165w_210h.jpg",
      name: "JAVA基础入门",
      estate: "剩余12天1小时",
      date: "借书时间: 10月8日 17:13"
    }
    ],

    list2: [{
      image: "https://i0.hdslb.com/bfs/bangumi/image/7ead54c7d4dcf6b0eb5b80e26c3cbdc34854f436.jpg@165w_210h.jpg",
      name: "JAVA基础入门",
      estate2: "已还 10月18日",
      date: "借书时间: 10月8日 17:13"
    },
    {
      image: "https://i0.hdslb.com/bfs/bangumi/image/7ead54c7d4dcf6b0eb5b80e26c3cbdc34854f436.jpg@165w_210h.jpg",
      name: "JAVA基础入门",
      estate2: "已还 10月18日",
      date: "借书时间: 10月8日 17:13"
    },
    {
      image: "https://i0.hdslb.com/bfs/bangumi/image/7ead54c7d4dcf6b0eb5b80e26c3cbdc34854f436.jpg@165w_210h.jpg",
      name: "JAVA基础入门",
      estate2: "已还 10月18日",
      date: "借书时间: 10月8日 17:13"
    }
    ]
  },

  navbarTap: function (e) {
    console.log(e);
    this.setData({
      currentTab: e.currentTarget.dataset.idx
    })
  },
  scroll: function (e) {
    this.setData({
      currentTab: e.detail.current,
    })
  }
})


JSON部分:

{
  "navigationBarTitleText": "个人订单"
}


效果图:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在微信小程序中实现二级导航条,可以使用 `scroll-view` 和 `swiper` 组件来实现。下面是一种实现方式: 1. 在页面的 `.json` 文件中定义一个数组,保存一级导航和对应的二级导航: ```json { "navigationList": [ { "name": "一级导航1", "subList": [ { "name": "二级导航1-1" }, { "name": "二级导航1-2" }, { "name": "二级导航1-3" } ] }, { "name": "一级导航2", "subList": [ { "name": "二级导航2-1" }, { "name": "二级导航2-2" }, { "name": "二级导航2-3" } ] } ] } ``` 2. 在页面的 `.wxml` 文件中,使用 `scroll-view` 组件来实现一级导航的滚动效果,并使用 `swiper` 组件来实现二级导航的滑动效果: ```html <scroll-view scroll-x class="nav"> <view wx:for="{{navigationList}}" wx:key="index" class="nav-item" data-index="{{index}}" bindtap="handleNavTap"> {{item.name}} </view> </scroll-view> <swiper class="sub-nav" current="{{currentNavIndex}}" duration="300"> <swiper-item wx:for="{{subNavigationList}}" wx:key="index"> <view wx:for="{{item.subList}}" wx:key="index" class="sub-nav-item"> {{item.name}} </view> </swiper-item> </swiper> ``` 3. 在页面的 `.js` 文件中,根据一级导航的点击事件,更新当前展示的二级导航: ```javascript Page({ data: { navigationList: [...], subNavigationList: [], currentNavIndex: 0 }, onLoad: function () { this.updateSubNavigationList(0); }, handleNavTap: function (e) { const index = e.currentTarget.dataset.index; this.setData({ currentNavIndex: index }); this.updateSubNavigationList(index); }, updateSubNavigationList: function (index) { const subList = this.data.navigationList[index].subList; this.setData({ subNavigationList: [{ subList }] }); } }) ``` 以上是一种简单的实现方式,你可以根据自己的需求进行修改和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值