微信小程序实现点击导航条切换页面

本文实例为大家分享了微信小程序实现点击导航条切换页面的具体代码,供大家参考,具体内容如下

我录制了个gif如下,黄色部分是不可以滑动的,蓝色部分可以滑动。
在这里插入图片描述

代码解说:

  • 首先我在js自定义了navState参数用于判断导航的当前状态,
  • 定义了data-index用于js中动态修改导航的当前状态,
  • nav-switch-style为选择导航条时的样式,
  • 不可滑动视图切换很简单,用wx:if判断状态显示相应页就好了,
  • 滑动页视图切换要用到swiper和 swiper-item,
  • 用bindchang方法监听滑块,current 改变时会触发 change 事件(还有个bindanimationfinish方法监听也是可以用的,详细请看官方文档
  • 动态的绑定了current滑块的index,这样就可以实现点击导航条滑块跟着滚动,
  • 相反的,当滑动滑块时,就可以根据current的值来动态修改导航的状态了。

wxml代码:

<!-- 导航条 -->
<view class="nav">
 <view bindtap="navSwitch" data-index="0" class="{{navState==0 ? 'nav-switch-style':''}}">页面一</view>
 <view bindtap="navSwitch" data-index="1" class="{{navState==1 ? 'nav-switch-style':''}}">页面二</view>
 <view bindtap="navSwitch" data-index="2" class="{{navState==2 ? 'nav-switch-style':''}}">页面三</view>
</view>
<!-- 不可滑动页 -->
<view>
 <view wx:if="{{navState==0}}" class="style-default">1</view>
 <view wx:elif="{{navState==1}}" class="style-default">2</view>
 <view wx:else="{{navState==2}}" class="style-default">3</view>
</view>
<!-- 滑动页 -->
<swiper bindchange="bindchange" current="{{navState}}">
 <block>
 <swiper-item>
 <view class="style-roll">
 <text>左右可滑动1</text>
 </view>
 </swiper-item>
 <swiper-item>
 <view class="style-roll">
 <text>左右可滑动2</text>
 </view>
 </swiper-item>
 <swiper-item>
 <view class="style-roll">
 <text>左右可滑动3</text>
 </view>
 </swiper-item>
 </block>
</swiper>

js代码:

Page({
 data: {
 navState: 0,//导航状态
 },
 //监听滑块
 bindchange(e) {
 // console.log(e.detail.current)
 let index = e.detail.current;
 this.setData({
 navState:index
 })
 },
 //点击导航
 navSwitch: function(e) {
 // console.log(e.currentTarget.dataset.index)
 let index = e.currentTarget.dataset.index;
 this.setData({
 navState:index
 })
 },

 /**
 * 生命周期函数--监听页面加载
 */
 onLoad: function(options) {

 },
})

wxss代码:

.nav{
 display: flex;
 justify-content: space-around;
 padding: 20rpx;
 background-color: rgb(129, 241, 55);
 font-size: 30rpx;
}
.nav-switch-style{
 color: snow;
}
.style-default{
 background-color: rgb(247, 229, 130);
 padding: 100rpx 0;
 text-align: center;
}
.style-roll{
 background-color: rgb(130, 177, 247);
 padding: 100rpx 0;
 text-align: center;
}
  • 10
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 微信小程序点击按钮跳转页面可以使用 `wx.navigateTo` 或 `wx.redirectTo` 方法。 首先,在按钮的绑定事件中调用方法,如: ``` <button bindtap='jumpPage'>跳转页面</button> ``` 然后,在页面的 js 文件中实现跳转逻辑,如: ``` Page({ jumpPage: function() { wx.navigateTo({ url: '/pages/newpage/newpage' }) } }) ``` 注意,需要在项目的 `app.json` 文件中注册新页面,才能在小程序中使用。 使用 `wx.navigateTo` 方法会在当前页面下方加载新页面,而使用 `wx.redirectTo` 方法会替换当前页面,也就是关闭当前页面,并打开新页面。 希望这些信息能帮到你! ### 回答2: 要在微信小程序实现点击按钮跳转页面,首先需要在小程序页面中添加一个按钮组件,并设置按钮的事件绑定。在按钮的事件处理函数中,可以通过调用微信小程序的导航API实现页面的跳转。 具体步骤如下: 1. 在小程序页面中,添加一个按钮组件: ``` <button bindtap="redirectToPage">点击跳转</button> ``` 2. 在小程序页面的js文件中,定义按钮的点击事件处理函数: ``` Page({ redirectToPage: function() { wx.navigateTo({ url: '跳转的页面路径' }) } }) ``` 其中,`wx.navigateTo`是微信小程序的导航API,可以跳转到应用的某个页面。在`url`参数中,填入跳转页面的路径,如`'pages/other/other'`。跳转的页面路径需要在小程序的配置文件`app.json`中进行配置。 3. 在小程序的配置文件`app.json`中,为跳转的页面路径进行配置: ``` { "pages": [ "pages/index/index", "pages/other/other" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "微信小程序", "navigationBarTextStyle":"black" } } ``` 在`pages`数组中,添加需要跳转的页面路径,以使跳转路径有效。 通过以上步骤,就可以在微信小程序实现点击按钮跳转页面的功能了。 ### 回答3: 要实现微信小程序点击按钮跳转页面,可以按照以下步骤进行操作: 1. 在当前页面的.wxml文件中,定义一个按钮,并设置相应的样式和事件绑定,例如: ``` <button bindtap="navigateToPage">跳转到新页面</button> ``` 2. 在当前页面的.js文件中,编写相应的事件处理函数,例如: ``` Page({ navigateToPage: function() { wx.navigateTo({ url: '/pages/newPage/newPage' }) } }) ``` 3. 在app.json文件中配置新页面的路径和窗口样式,例如: ``` { "pages": [ "pages/index/index", "pages/newPage/newPage" ], "window": { "backgroundColor": "#ffffff", "navigationBarTitleText": "微信小程序" } } ``` 4. 在新页面的.wxml文件中,定义相应的内容和样式。 以上就是在微信小程序实现点击按钮跳转页面的基本步骤。需要注意的是,页面间的跳转可以使用`wx.navigateTo`方法跳转到新页面,也可以使用`wx.redirectTo`方法进行页面重定向,具体使用哪种方法根据需求来决定。同时,还可以使用`wx.navigateBack`方法返回上一页,或者使用`wx.switchTab`方法切换到指定的tab页。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值