微信小程序 - tab选项卡切换的实现方法

页面效果

在这里插入图片描述
大体思路

  1. 首先是把新闻的内容,还有活动的内容都列到wxml上
  2. 然后把tab写出来。现在的难点是如何把tab和下面的内容联系起来
  3. 我们定义一个公共变量,变量名是state,当state= ‘news’ 的时候,显示新闻的内容,当state= ‘conference’ 的时候,显示活动内容
  4. 怎么在点击tab切换的时候,改变对应的state的值呢 ?
    (1)首先是给新闻和活动加一个date-state属性,属性的值分别代表了新闻和活动
    (2)其次需要一个点击方法,当点击新闻的时候,就通过setData : state(变量名)=新闻(变量值) ,变量值是通过 e.currentTarget.dataset 来获取对应的值。
  5. 点击赋值之后,此时变量state的值会发生改变,wxml根据state的值来显示对应的内容。
    当state=新闻,就显示新闻内容,当state=活动,就显示活动内容

上代码

wxml

<view class="myTaber2">
	<view class="top">
		<block wx:for="{{tabList}}" wx:key="*this">
			<view class="{{state === item.index ? 'scroll_item active':'scroll_item'}}" bindtap="taberTop" data-state="{{item.index}}">{{item.name}}</view>
		</block>
	</view>

	<scroll-view
   refresher-triggered='{{refreshState}}'
    refresher-enabled='{{true}}' 
    bindrefresherrefresh='refresh'
    bindscrolltolower='toBottom'
    scroll-y='{{true}}'
  >
		<view wx:if="{{state === 'news'}}">
			<block wx:for="{{list}}" wx:key="*this">
				<news-item msg="{{item}}" />
			</block>
		</view>

		<view wx:if="{{state === 'conference'}}">
			<block wx:for="{{list}}" wx:key="*this">
				<cooperate-item msg="{{item}}" />
			</block>
		</view>
	</scroll-view>
</view>

js文件

Page({

  /**
   * 页面的初始数据
   */
  data: {
    state:"news",
    tabList:[
      {name:'新闻',index:'news'},
      {name:'活动',index:'conference'}
    ],
    list:[
      {type: '供', address: '北京、北京、北京、北京、北京、北京、北京', work: '服务员、服务员、服务员、服务员、服务员、服务员', remark: '2344234234234234', img: '../../images/banner2.jpg', title: '产品上线的7个惨痛的教训,说多了都是眼泪', time: '2020-05-11 09:54:07', name: '小魔女', cloudNum: 256, join: 8},
      {type: '供', address: '北京、北京、北京、北京、北京、北京、北京', work: '服务员、服务员、服务员、服务员、服务员、服务员', remark: '2344234234234234', img: '../../images/banner2.jpg', title: '产品上线的7个惨痛的教训,说多了都是眼泪', time: '2020-05-11 09:54:07', name: '小魔女', cloudNum: 256, join: 8},
      {type: '供', address: '北京、北京、北京、北京、北京、北京、北京', work: '服务员、服务员、服务员、服务员、服务员、服务员', remark: '2344234234234234', img: '../../images/banner2.jpg', title: '产品上线的7个惨痛的教训,说多了都是眼泪', time: '2020-05-11 09:54:07', name: '小魔女', cloudNum: 256, join: 8},
    ],
    refreshState: false,
  },

  taberTop:function(e){
    console.log(e);
    this.setData({
      state: e.currentTarget.dataset.state
    })
  },
  refresh:function(e){
    this.setData({
      refreshState: true
    })
    setTimeout(() =>{
      this.setData({
        refreshState: false
      })
    },2000)
  },
  toBottom(e) {//到底部
    console.log(e)
  },
})

wxss文件

.top{
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  .scroll_item{
    width: 50%;
    text-align: center;
    font-size: 34rpx;
    line-height: 80rpx;
  }
  .active{
    background: #F79156;
    color: #fff;
  }
}

关于scroll-view
可参考微信官方给出的方法使用
https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.html
在这里插入图片描述

  • 21
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论
微信小程序Demo-TAB切换是一个功能丰富且易于定制的示例项目,它展示了如何在微信小程序实现TAB页面的切换效果。通过这个项目,开发者可以学习到如何使用微信小程序的API和组件来创建流畅的用户界面,以及如何管理页面间的数据传递和状态更新。 该项目包含了完整的源代码,这意味着开发者可以根据自己的需求进行二次开发和定制。它提供了一个坚实的基础框架,开发者可以在其中添加新的功能模块,或者修改现有的功能以满足特定的业务需求。 在功能方面,该项目实现了以下特点: 1. 流畅的TAB切换效果:通过使用微信小程序的swiper组件,该项目实现了平滑的滚动切换效果,提供了出色的用户体验。 2. 数据绑定与状态管理:项目演示了如何利用微信小程序的数据绑定特性,将页面数据与视图层进行实时同步,以及如何在页面间共享和管理状态。 3. 事件处理与用户交互:项目中的事件处理机制使得开发者可以轻松地响应用户的操作,如点击按钮、滑动页面等,从而提供丰富的用户交互体验。 4. 样式自定义与扩展性:项目的样式设计考虑到了扩展性和自定义的需求,开发者可以根据自己的品牌风格和用户需求对页面样式进行调整和优化。 总之,微信小程序Demo-TAB切换是一个功能完善、易于定制和扩展的示例项目,非常适合初学者和进阶开发者学习和实践。通过掌握这个项目,你将能够更深入地理解微信小程序的开发理念和最佳实践,为自己的项目开发打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁锤妹妹@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值