微信小程序开发,实现欢迎页/开屏页/启动页倒计时

1. 涉及到的知识点

  1. 路由跳转: https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab.html

  2. 定时器使用: https://developers.weixin.qq.com/miniprogram/dev/reference/api/setInterval.html

2. 路由跳转的5中方式

1. wx.switchTab(Object object)

功能描述:
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

参数:
Object object

属性类型默认值必填说明
urlstring需要跳转的 tabBar 页面的路径(代码包路径)(需在 app.json 的 tabBar 段定义的页面),路径后不能带参数
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

2. wx.reLaunch(Object object)

功能描述:
关闭所有页面,打开到应用内的某个页面

参数:
Object object

属性类型默认值必填说明
urlstring需要跳转的应用内页面路径(代码包路径),路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值相连,不同参数用&分隔;如 ‘path?key=value&key2=value2’
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

3. wx.redirectTo(Object object)

功能描述:
关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。

参数:
Object object

属性类型默认值必填说明
urlstring需要跳转的应用外非 tabBar 的页面的路径(代码包路径)。路径后可以带参数。参数与路径之间使用 ? 分隔,参数键与参数值 相连,不同参数用 & 分隔;如 ‘path?key=value&key2=value2’
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

4. wx.navigateTo(Object object)

功能描述:
保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层。

参数:
Object object

属性类型默认值必填说明
urlstring需要跳转的应用内非 tabBar 的页面的路径(代码包路径),路径后可以带参数。参数与路径之间使用 ? 分隔,参数键与参数值 = 相连,不同参数用 & 分隔;如 ‘path?key=value&key2=value2’
eventsObject页面通信接口,用于监听被打开页面发送到当前页面的数据。基础库 2.7.3 开始支持。
routeTypestring自定义路由由类型,相关文档 自定义路由
routeConfigObject自定义路由配置,相关文档 自定义路由
routeOptionsObject自定义路由参数,相关文档 自定义路由
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

5. wx.navigateBack(Object object)

功能描述:
关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈,决定需要返回几层。

参数:
Object object

属性类型默认值必填说明
deltanumber1返回的页面数,如果 delta 大于现有页面数,则返回到首页。
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(调用成功、失败都会执行)

3. 代码实现过程

  1. splash.wxml布局页面
<!--pages/splash/splash.wxml-->
<view class="splash-container">
	<view class="jump-container">
		<text>{{seconds}} s | 跳过</text>
	</view>
	<view class="image-container">
		<image src="https://img2.baidu.com/it/u=1553947715,2196891669&fm=253&fmt=auto&app=138&f=PNG?w=192&h=192" mode="" />
	</view>
</view>
  1. splash.wxss样式
/* pages/splash/splash.wxss */

.splash-container{
	display: flex;
	position: relative;
}


.jump-container{
	width: 128rpx;
	height: 58rpx;
	line-height: 58rpx;
	background-color: #0b0d3b;
	border-radius: 29rpx;
	text-align: center;
	font-size: 20rpx;
	position:absolute;
	top: 168rpx;
	right: 20rpx;
	color: white;
	position: absolute;
	z-index: 100;
}

.image-container{
	display: flex;
	width: 100vh;
	height: 100vh;
	justify-content: center;
	align-items: center;
  
}

.image-container image{
	width: 168rpx;
	height: 168rpx;
}
  1. splash.js页面
// pages/splash/splash.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    seconds: 3
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.startJump()
  },

  //启动倒计时
  startJump(params) {
    const countdownTimer = setInterval(() => {
      if (this.data.seconds > 0) {
        this.setData({
          seconds: this.data.seconds-1
        })
      } else {
        //取消由 setInterval 设置的定时器
        clearInterval(countdownTimer)
        //注意:switchTab 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
        wx.switchTab({
          url: '/pages/index/index',
        })
      }

    }, 1000)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

3. 运行效果

在这里插入图片描述

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

浩宇软件开发

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

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

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

打赏作者

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

抵扣说明:

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

余额充值