首页 > 编程语言 >微信小程序页面功能-----标签切换

微信小程序页面功能-----标签切换

时间:2024-04-20 13:00:10浏览次数:28  
标签:index 微信 item ----- tab 标签 data swiper 页面

一、页面布局

首先我们需要布局出标签切换的页面,下面不多描述直接上代码

1、html部分

<!-- 标签页标题 -->
<view class="tob">
  <view class="tab-item">音乐推荐器</view>
  <view class="tab-item">播放器</view>
  <view class="tab-item">播放列表</view>
</view>
<!-- 内容区域 -->
<view class="content">
  <swiper>
    <swiper-item>
    <include src="info.wxml" />
    </swiper-item>
    <swiper-item>
    <include src="play.wxml" />
    </swiper-item>
    <swiper-item>
    <include src="playlist.wxml" />
    </swiper-item>
  </swiper>
</view>
<!-- 底部播放器 -->
<view class="player"></view>

下面是三个标签页面设置

(1)info.html

<view style="background: #ccc; color: #000; height: 100%;">
info
</view>

(2)play.wxml

<view style="background: #ddd; color: #000; height: 100%;">
play
</view>

(3)playlist.wxml

<view style="background: #eee; color: #000; height: 100%;">
playlist
</view>

2、css部分

page {
  display: flex;
  flex-direction: column;
  background: #17181a;
  color: #ccc;
  height: 100%;
}
.tab{
  display: flex;
}
.tab-item{
  flex: 1;
  font-size: 10pt;
  text-align: center;
  line-height: 72rpx;
  border-bottom: 6rpx solid #eeeeee;
}
.content{
  flex: 1;
}
.content > swiper{
  height: 100%;
}
.player{
  background: #222;
  border-top: 1px solid #252525;
  height: 112rpx;
}

下面是我们的页面效果图

 

二、实现效果

修改pages/index/index.wxml文件中的tab区域,为3个tab-item绑定事件并设置data-item属性

  <view class="tab-item" bindtab="changeItem" data-item="0">音乐推荐器</view>
  <view class="tab-item" bindtab="changeItem" data-item="1">播放器</view>
  <view class="tab-item" bindtab="changeItem" data-item="2">播放列表</view>

在上述代码中,data-item的值表示swiper组件中对应的swiper-item索引

接下来修改content区域,为swiper组件中的current属性绑定变量item

<!-- 内容区域 -->
<view class="content">
  <swiper current="{{item}}">

完成上面代码后,在tab-item的changeItem事件中,将item的值设为data-item的值即可实现切换到对应的标签页。修改page/index/index.js文件,将item和changeItem增加到代码中

Page({
  data:{
    item:0,
  },
  changeItem:function(e){
    this.setData({
      item:e.target.dataset.item
    })
  }
})

切换标签页后还需要改变当前标签页对应的tab-item的样式,将文本颜色和底部的线条颜色设为红色,表示当前标签页处于活跃状态。下面通过判断变量tab的值,来为当前活跃的data-item增加一个active样式,具体代码如下

 <view class="tab-item {{tab==0?'active':''}}" bindtap="changeItem" data-item="0">音乐推荐器</view>
  <view class="tab-item {{tab==1?'active':''}}" bindtap="changeItem" data-item="1">播放器</view>
  <view class="tab-item {{tab==2?'active':''}}" bindtap="changeItem" data-item="2">播放列表</view>

接下来在pages/index/index.wxss中编辑active样式,具体代码如下

.tab-item.active{
  color: #c25b5b;
  border-bottom-color:#c25b5b ;
}

为了更改tab值,下面为swiper组件绑定改变事件,具体代码如下

<view class="content">
  <swiper current="{{item}}" bindchange="changeTab">

在上述代码中,changeTab事件处理函数会在swiper组件发生切换时调用。下面修改page/index/index.js文件,在页面数据中增加tab变量

  data:{
    item:0,
    tab:0
  },

然后编辑changeTab事件处理函数,实现当该函数被调用后,tab的值更改为当前标签页的索引

changeTab:function(e){
    this.setData({
      tab:e.detail.current
    })
  }

 

标签:index,微信,item,-----,tab,标签,data,swiper,页面
From: https://www.cnblogs.com/lixianhui/p/18147579

相关文章

  • 原生js图片截取并渲染页面
    一、将海报大图截屏部分图片并渲染页面二、实现代码如下<!DOCTYPEhtml><htmllang="zh"> <head> <metacharset="UTF-8"> <metaname="viewport"content="width=device-width,initial-scale=1.0"> <title>Do......
  • C++ STL -- list
    listlist是一种基于双向链表的数据结构,适用于需要在序列中执行频繁插入和删除操作的场景特性本质上是一个双向链表,允许在序列的两端和中间执行插入和删除操作只能通过迭代器访问元素,即访问元素的时间复杂度为\(O(n)\)动态内存管理,内部通过类似指针的节点实现元素存储,一个节......
  • P8595 「KDOI-02」一个网的路
    P8595「KDOI-02」一个网的路树形dp显然我们贪心的先执行第一种操作,最后再连边。森林中不同棵树互不影响,所以考虑最小化每棵树的操作次数。考虑dp。我们要把一棵树分成若干条链,那么考虑每个子树\(u\)中,节点\(u\)的情况有三种:执行了第一种操作,成为单独一个点。\(u\)......
  • L1-009 N个数求和
    #include<bits/stdc++.h>usingnamespacestd;constintinf=0x3f3f3f3f;#definelllonglongstructFraction{ llfenzi,fenmu;};intgcd(inta,intb){ if(b==0)returna; returngcd(b,a%b);}intlcm(inta,intb){ returna/gcd(a,b)*b;}Fracti......
  • 1.6K Star 微信自动化,weixin-python,一个与微信交互超强库
    简介提供微信登录,公众号管理,微信支付,微信消息的全套功能安装使用pipsudopipinstallweixin-python使用easy_installsudoeasy_installweixin-python用法参数WEIXIN_TOKEN 必填,微信主动推送消息的TOKENWEIXIN_SENDER 选填,微信发送消息的发送者WEIXIN_EXPIRES_IN......
  • MIT6.S081 - Lecture3: OS Organization and System Calls
    为什么要使用操作系统使用操作系统的主要原因是为了实现CPU多进程分时复用以及内存隔离如果没有操作系统,应用程序会直接与硬件进行交互,这时应用程序会直接使用CPU,比如假设只有一个CPU核,一个应用程序在这个CPU核上运行,但是同时其他程序也需要运行,因为没有操作系统来帮助......
  • v-model的修饰符( .number .trim .lazy)
    v-model的修饰符 .number的作用是将绑定的值从string类型变为number类型 在上述代码中,我们在input元素绑定了blur事件,作用为当鼠标移出当元素,触发该事件去响应方案 可以看到在鼠标移出后,控制台打印的number类型为string当我们再v-model后加上修饰符.number后 控制台......
  • 掌握时间序列特征工程:常用特征总结与 Feature-engine 的应用
    时间序列数据的特征工程是一种技术,用于从时间序列数据中提取信息或构造特征,这些特征可用于提高机器学习模型的性能。以下是一些常见的时间序列特征工程技术:滚动统计量:计算时间窗口内的统计量,如平均值、中位数、标准偏差、最小值和最大值。这些统计量可以捕捉到时间序列在不同时......
  • v-model的使用
    v-model的作用实现元素或组件上的双向绑定v-model指令只能用于: 在input元素上使用v-model绑定,实际就是给元素的value属性赋值在input元素和select元素使用v-model 在上述代码中,input元素和select元素都使用v-model绑定了同一个值,页面为:  可以看到输入框和选择框的......
  • 微信小程序video在组件中的使用---暂停视频
    首先在wxml文件中设置video的id<videoid='myVideo'src='{{video}}'controls='true'></video>然后在js文件中通过wx.createVideoContext获取VideoContext实例letvideoCtx=nullletapp=getApp()Component({properties:{},......