wepy小程序实现选项卡

先上效果:

本文是基于前面几篇文章:

使用wepy开发微信小程序商城第一篇:项目初始化

使用wepy开发微信小程序商城第二篇:路由配置和页面结构

使用wepy开发微信小程序商城第三篇:购物车(布局篇)

wepy小程序实现列表分页上拉加载(1)

wepy小程序实现列表分页上拉加载(2)

正文开始:

1.新建一个需要选项卡的页面

(1)pages下面其他页面复制一份,修改文件名,删掉内容,保留结构。pages/tab.wpy

(2)打开app.wpy,config里面添加页面路由

config = {
  pages: [
    ‘pages/home‘, // 首页
    ‘pages/category‘, // 分类
    ‘pages/cart‘, // 购物车
    ‘pages/member‘, // 会员中心
    ‘pages/list‘, // 列表页
    ‘pages/tab‘ // 选项卡演示页
  ],
}

(3)在首页home.wpy添加一个导航,作为选项卡演示页的入口

<template>
  <view class="container">
    <view class="nav">
      <navigator url="/pages/list">演示上拉加载列表</navigator>
      <navigator url="/pages/tab">选项卡</navigator>
    </view>
  </view>
</template>

现在2个导航了,是时候美化一下,css如下:

.nav {
  text-align: center;
  padding: 20rpx;
  navigator {
    margin-bottom: 30rpx;
    background-color: #f5f5f5;
    border-radius: 10rpx;
    line-height: 48rpx;
    padding: 10rpx 50rpx;
    color: #333;
  }
}

2.选项卡布局

打开tab.wpy

(1)静态布局

tempate结构代码:

<template>
  <view>
    <!-- 选项卡导航 -->
    <view class="swiper-tab">
      <view wx:for="{{tabList}}" wx:key="index" class="swiper-tab-list {{currentTab==index ? ‘active‘ : ‘‘}}" bindtap="switchNav({{index}})">
        {{item.name}}
        <view class="dot" wx:if="{{item.dotNum>0}}">{{item.dotNum}}</view>
      </view>
    </view>
    <!-- 切换的内容 -->
    <view class="tab-content" wx:if="{{currentTab===0}}">选项卡演示内容1111111</view>
    <view class="tab-content" wx:if="{{currentTab===1}}">选项卡演示内容2222222</view>
    <view class="tab-content" wx:if="{{currentTab===2}}">选项卡演示内容3333333</view>
  </view>
</template>

css:

.swiper-tab {
  width: 100%;
  border-bottom: 1rpx solid #eee;
  text-align: center;
  line-height: 80rpx;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  background: #fff;
}
.swiper-tab-list {
  font-size: 30rpx;
  color: #777777;
  padding: 0 40rpx;
  position: relative;
}
.active {
  color: #eb6623;
  border-bottom: 5rpx solid #eb6623;
}
.dot {
  position: absolute;
  display: flex;
  width: 37rpx;
  height: 35rpx;
  line-height: 40rpx;
  text-align: center;
  align-items: center; /* 垂直居中 */
  justify-content: center; /* 水平居中 */
  background: #eb6623;
  border-radius: 100px;
  color: #fff;
  z-index: 999;
  font-size: 26rpx;
  top: 0;
  right: 10rpx;
}

.tab-content {
  text-align: center;
  padding: 100rpx 50rpx;
}

js data对象:

data = {
    tabList: [
      {
        name: ‘未使用‘,
        dotNum: 2
      },
      {
        name: ‘已使用‘,
        dotNum: 3
      },
      {
        name: ‘已过期‘,
        dotNum: 10
      }
    ],
    currentTab: 0
  }

(2)点击切换

  methods= {
    switchNav(i, e) {
      if (this.currentTab === i) {
        return false
      } else {
        this.currentTab = i
        this.$apply()
      }
    }
  }

记得执行 npm run dev ,再打开微信开发者工具预览效果哟~

最终效果如开头的图

谢谢!

原文地址:https://www.cnblogs.com/basic0001/p/10331311.html

时间: 2024-08-30 16:26:20

wepy小程序实现选项卡的相关文章

【WePY小程序框架实战四】-使用async&amp;await异步请求数据

[WePY小程序框架实战一]-创建项目 [WePY小程序框架实战二]-页面结构 [WePY小程序框架实战三]-组件传值 async await 是对promise的近一步优化,既解决了promise链式then的这种写法壁垒,又让异步请求更像同步,若对async await不太了解的同学可以直接参考阮一峰老师的文章async 函数的含义和用法,这里我们只关注怎么在小程序wepy架构中如何使用. 依赖库 import 'wepy-async-function' app.wpy中启用 export

wepy小程序入门和项目初始化

前言: wepy小程序项目初始化的操作,官方文档看了好几遍,感觉写得不是很清楚. 这篇写得挺好的:小程序开发之wepy 1.初始化项目 (1)全局安装或者更新wepy命令行工具 npm install wepy-cli -g (2)在开发目录中生成Demo开发项目 wepy init standard project-name (3)编译 cd project-name npm install wepy build --watch 或者 npm run dev 2.目录结构 ├── dist 微

wepy小程序实现列表分页上拉加载(2)

第一篇:wepy小程序实现列表分页上拉加载(1) 本文接着上一篇内容: 4.优化-添加加载动画 (1)首先写加载动画的结构和样式 打开list.wpy文件 template结构代码: <template> <view class="list-wrapper"> <!-- 滚动列表 --> <scroll-view scroll-y="true" style="height: 400px;" bindscr

微信小程序之选项卡的实现方法

微信小程序里没有自带选项卡组件,但是却带有swiper组件,所以,我们便利用swiper来实现选项卡的功能. 先看效果图: 实现代码: 页面代码: 1 2 3 4 5 6 7 8 9 10 11 <view class="swiper-tab">   <view class="swiper-tab-item {{currentTab==0?'active':''}}" data-current="0" bindtap="

wepy 小程序云开发

小程序前段时间更新了云开发的功能,刚听到对时候觉得简直是个人开发者对福音,尤其是对我这样对后端不是很懂对前端傻傻,简直不能太方便,就试了下. 体验二维码: 源码:https://github.com/calamus0427/233 wepy文档 云开发文档 原文地址:https://www.cnblogs.com/calamus/p/9899873.html

wepy小程序实现列表分页上拉加载(1)

使用wepy开发微信小程序商城第一篇:项目初始化 使用wepy开发微信小程序商城第二篇:路由配置和页面结构 列表页效果图: 1.新建列表页 (1)在pages里面新建一个list.wpy文件 初始代码结构如下: <style lang="less"> </style> <template> <view> </view> </template> <script> import wepy from 'wep

wepy 小程序开发(Mixin混合)

默认式混合 对于组件data数据,components组件,events事件以及其它自定义方法采用默认式混合,即如果组件未声明该数据,组件,事件,自定义方法等,那么将混合对象中的选项将注入组件之中.对于组件已声明的选项将不受影响. // mixins/test.js import wepy from 'wepy'; export default class TestMixin extends wepy.mixin { data = { foo: 'foo defined by page', ba

小程序之选项卡切换(纵向)

选项卡算是小程序中必不可少,大家基本上都会用到的一个功能组件,今天就来分享一个自己做的效果,纵向的一个选项卡 wxml <view class='productNav'> <!-- 左侧 --> <view class='left'> <view class="{{active==0?'selected':'normal'}}" id="0" bindtap='switchNav'>牙齿清洁</view>

wepy 小程序定时器(验证码倒计时) 数据绑定页面无刷新

每次改变数据的时候记得调用  this.$apply() 验证码倒计时 使用的vant-weapp  UI组件 wxml: 1 <van-col span="10" style='text-align:center'> 3 <view wx:if="{{sendAuthCode}}"bindtap="getCode()">获取验证码</view> 6 <view wx:elif="{{!send