优雅的用户体验:微信小程序中的多步骤表单引导
前言
在微信小程序中,实现一个多步骤表单引导界面既可以提供清晰的任务指引,又可以增加用户体验的互动性。本文将探讨如何使用微信小程序的特性,构建一个流程引导界面,帮助用户一步步完成复杂任务。我们将从设计布局和样式开始,逐步引导用户完成表单,最终实现一个美观的用户界面。
源码如下
wxml文件
<view class="mainBox"><!-- 步骤条 --><view class="stepBox"><text class="{{currentStep>=1?'active':''}}">1</text><text class="{{currentStep>=2?'active':''}}">2</text><text class="{{currentStep>=3?'active':''}}">3</text><text class="{{currentStep>=4?'active':''}}">4</text><text class="{{currentStep>=5?'active':''}}">完成</text></view><!-- 内容根据当前步骤进行显示,这里可以放置相应的表单内容等 --><view class="stepConBox"><view wx:if="{{currentStep == 1}}">内容111</view><view wx:if="{{currentStep == 2}}">内容222</view><view wx:if="{{currentStep == 3}}">内容333</view><view wx:if="{{currentStep == 4}}">内容444</view><view wx:if="{{currentStep == 5}}">完成</view></view><!-- 操作按钮 --><view class="btnsBox"><button wx:if="{{currentStep > 1 && currentStep < 5}}" bindtap="prevStepOn">上一步</button><button wx:if="{{currentStep < 4}}" bindtap="nextStepOn">下一步</button><button wx:if="{{currentStep == 4 || currentStep == 5}}" bindtap="{{currentStep == 4 ? 'submitFormOn' : 'completeOn'}}">{{currentStep == 4 ? '提交' : '完成'}}</button></view>
</view>
js文件
Page({data: {currentStep: 1, // 初始化数据,currentStep 代表当前的步骤,初始值为 1},// 上一步按钮点击事件处理函数prevStepOn() {// 检查当前步骤是否大于 1,以确保不会回到步骤 0if (this.data.currentStep > 1) {// 更新数据,将当前步骤减 1this.setData({currentStep: this.data.currentStep - 1});}},// 下一步按钮点击事件处理函数nextStepOn() {// 检查当前步骤是否小于 4,以确保不会超过最大步骤数if (this.data.currentStep < 4) {// 更新数据,将当前步骤加 1this.setData({currentStep: this.data.currentStep + 1});}},// 提交按钮点击事件处理函数submitFormOn() {// 在这里执行提交操作,可以调用相应的接口或处理表单数据// 显示提交成功的提示wx.showToast({title: '提交成功',icon: 'none',duration: 2000});// 设置当前步骤为 5,表示已完成this.setData({currentStep: 5});},// 完成按钮点击事件处理函数completeOn() {this.setData({currentStep: 1});},
});
wxss文件
.mainBox {padding: 20rpx;
}/* 定义步骤指示器的样式 */
.stepBox {font-size: 28rpx;font-weight: bold;display: flex;justify-content: space-around;
}/* 定义步骤指示器中的文本样式 */
.stepBox text {background: #CEDDF5;width: 116rpx;height: 60rpx;text-align: center;line-height: 60rpx;color: #fff;border-radius: 8rpx;
}/* 定义步骤指示器中处于活动状态的文本样式 */
.stepBox text.active {background: #477BF7;
}/* 设置步骤内容容器的内边距 */
.stepConBox {padding: 20rpx;
}/* 定义按钮容器的样式 */
.btnsBox {display: flex;justify-content: space-between;margin-top: 20px;
}/* 定义按钮样式 */
.btnsBox button {width: 50%;font-size: 30rpx;font-weight: bold;background: linear-gradient(151deg, #2F7EFC 0%, #7BADFC 100%);color: #fff;border: none;border-radius: 50rpx;
}/* 定义除第一个按钮外的按钮样式,设置左外边距 */
.btnsBox button:nth-child(n+2) {margin-left: 20rpx;
}
实现思路
以上代码就实现了基于小程序框架的多步骤表单引导界面,其中包含了步骤条、不同步骤下的内容展示和操作按钮。首先,让我们从代码的结构开始解析:
HTML结构:
mainBox 是整个页面的主容器,包含了步骤条、内容展示区和操作按钮区;
stepBox 是步骤条容器,用于显示当前步骤的进度,通过 class 的条件渲染来表示当前步骤是否激活;
stepConBox 是内容展示区容器,通过 wx:if 条件渲染来显示与当前步骤相关的内容;
btnsBox 是操作按钮区容器,根据当前步骤的不同,展示上一步、下一步、提交和完成按钮。
JavaScript逻辑:
Page 函数用于定义页面的初始数据,其中 currentStep 初始化为 1,表示当前所在的步骤;
prevStepOn 函数处理上一步按钮的点击事件,确保不会回到步骤 0,通过修改 currentStep 更新界面;
nextStepOn 函数处理下一步按钮的点击事件,确保不会超过最大步骤数,同样通过修改 currentStep 更新界面;
submitFormOn 函数处理提交按钮的点击事件,执行提交操作,例如调用接口或处理表单数据,同时显示提交成功的提示,将 currentStep 设置为 5,表示已完成;
completeOn 函数处理完成按钮的点击事件,将 currentStep 重置为 1,重新开始流程。
-
初始化
在页面加载时,初始化
currentStep为1,显示第一个步骤的内容和相应的步骤条。 -
上一步和下一步
当用户点击上一步按钮时,检查当前步骤是否大于
1,如果是,就减小currentStep,并根据新的currentStep来渲染相应的内容和步骤条。
当用户点击下一步按钮时,检查当前步骤是否小于4,如果是,就增加currentStep,并根据新的currentStep来渲染相应的内容和步骤条。 -
提交表单
当用户点击提交按钮时,执行提交操作,可以调用后端接口或处理表单数据,然后显示提交成功的提示信息。
将currentStep设置为5,表示已完成所有步骤。 -
完成流程
用户完成所有步骤后,可以点击完成按钮,将
currentStep重置为1,重新开始整个流程。
实现效果

相关推荐
⭐ 让你的物流信息一目了然:微信小程序实现进度展示
相关文章:
优雅的用户体验:微信小程序中的多步骤表单引导
前言 在微信小程序中,实现一个多步骤表单引导界面既可以提供清晰的任务指引,又可以增加用户体验的互动性。本文将探讨如何使用微信小程序的特性,构建一个流程引导界面,帮助用户一步步完成复杂任务。我们将从设计布局和样式开始&am…...
Kotlin中的委托、属性委托和延迟加载
委托模式是一种常用的设计模式,用于将某个对象的责任委托给另一个对象来处理。在Kotlin中,委托可以通过关键字by来实现,主要分为类委托和属性委托两种形式。此外,Kotlin还提供了延迟加载的功能,可以在需要时才进行初始…...
轻松合并Excel工作表:Java批量操作优化技巧
摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 在Excel中设计表单时,我们经常需要对收集的信息进行统计分析。例如&a…...
计算机网络_网络层概述
4.1 网络层概述 4.1.1 一.分组转发和路由选择 网络层的主要任务就是将分组从源主机经过多个网络和多段链路传输到目的主机,可以将该任务划分为分组转发和路由选择两种重要的功能。 注释:A发送到B,从1端口进入. 如何得知是从2还是从3中转发出去呢?--------->这…...
自然语言处理---Transformer机制详解之GPT2模型介绍
1 GPT2的架构 从模型架构上看, GPT2并没有特别新颖的架构, 它和只带有解码器模块的Transformer很像. 所谓语言模型, 作用就是根据已有句子的一部分, 来预测下一个单词会是什么. 现实应用中大家最熟悉的一个语言模型应用, 就是智能手机上的输入法, 它可以根据当前输入的内容智…...
ChatGPT 即将诞生一周年,OpenAI 将有大动作
图片来源:由无界AI生成 下个月就是 ChatGPT 一周年纪念日。OpenAI 正在谋划新的大动作。可以肯定地说,自诞生以来,ChatGPT 就为 OpenAI 提供了不可阻挡的增长动力。 01 营收超预期,OpenAI 缓了一口气 据 The Information 报道&…...
jenkins 原理篇——pipeline流水线 声明式语法详解
大家好,我是蓝胖子,相信大家平时项目中或多或少都有用到jenkins,它的piepeline模式能够对项目的发布流程进行编排,优化部署效率,减少错误的发生,如何去写一个pipeline脚本呢,今天我们就来简单看…...
在ESP32-Arduino开发中添加其它Arduino库
目录 前言 原理说明 操作步骤 下载Bounce 安装Bounce 将下载的文件夹(压缩包需要解压)移动到components/arduino/libraries路径下,并重命名为Bounce2 查看添加库里所有的源文件位置 在arduino的CMakeList.txt里添加库源文件 使用Bounce 前言 乐鑫官方的es…...
CAN总线测试——CAN一致性之物理层
CAN一致性物理层测试项 1.最小通讯电压测试2.最大通讯电压测试3.显性位/隐性位输出电压测试4.信号跳变沿测试5. 地偏移6. 终端电阻 1.最小通讯电压测试 2.最大通讯电压测试 3.显性位/隐性位输出电压测试 4.信号跳变沿测试 5. 地偏移 6. 终端电阻...
macrodata数据集在Python统计建模和计量经济学中的应用
目录 一、数据介绍二、应用三、statsmodels 统计模块四、使用 statsmodels 统计模块分析 macrodata.csv 数据集参考 一、数据介绍 macrodata.csv是一个示例数据集,通常用于统计分析和计量经济学中的教育和训练目的。这个数据集通常包括以下列: year&am…...
【C++进阶(九)】C++多态深度剖析
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:C从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学习C 🔝🔝 多态 1. 前言2. 多态的概念以及定义3. 多态的实…...
第二节——Vue 基本介绍
一、MV*的理解 1、概念 在计算机编程领域,MV*(也称为MVC、MVP、MVVM等)是一种用于组织和设计应用程序结构的模式。这些模式旨在实现应用程序的解耦、可维护性和可扩展性。MV代表着Model-View-(表示控制器或视图模型等其他组件&a…...
基于ResNet34的花朵分类
一.数据集准备 新建一个项目文件夹ResNet,并在里面建立data_set文件夹用来保存数据集,在data_set文件夹下创建新文件夹"flower_data",点击链接下载花分类数据集https://storage.googleapis.com/download.tensorflow.org/example_i…...
[计算机提升] 数据及相关概念
1.9 数据及相关概念 1.9.1 数据、信息 在Windows系统中,数据是指事实或信息的集合,可以是数字、文本、图像、声音等形式的内容。数据是计算机系统中处理和操作的基本元素,是信息的表现形式和载体。 与信息相比,数据的范围更广泛…...
第18章 SpringCloud生态(二)
18.11 说说你了解的负载均衡算法 难度:★★ 重点:★★★★ 白话解析 常用的负载均衡算法有: 1、轮询(Round Robin):说白了就是让服务器排好队,一个个轮着来调用;Ribbon默认采用该算法。 优点:实现起来简单; 缺点:服务器性能不一样的情况下,导致能力强的会经常空闲…...
【Android】BRVAH多布局实现
前言 基于3.0.4版本的BRVAH框架实现的 实现方法 1.创建多个不同类型的布局(步骤忽略) 2.创建数据实体类 数据类要实现【MultiItemEntity】接口 class MyMultiItemEntity(//获取布局类型override var itemType: Int,var tractorRes: Int? null,va…...
AWS SAP-C02教程9-节省成本
SAP-C01变成SAP-C02的时候,最大的变化就是没有把成本单独列出一个模块,但是成本依然包含在各个其它模块之中,所以成本还是很重要的。本章将列举一些成本优化方案以及一些成本辅助功能。 目录 1 Cost Allocation Tags2 Trusted Advisor2.1 AWS Support Plans2.2 基本特性2.3…...
[CSP-S 2023] 种树 —— 二分+前缀和
This way 题意: 一开始以为是水题,敲了一个二分贪心检查的代码,20分。发现从根往某个节点x走的时候,一路走来的子树上的节点到已栽树的节点的距离会变短,那么并不能按照初始情况贪心。 于是就想着检查时候用线段树…...
【LeetCode周赛】LeetCode第368场周赛
目录 元素和最小的山形三元组 I元素和最小的山形三元组 II合法分组的最少组数 元素和最小的山形三元组 I 给你一个下标从 0 开始的整数数组 nums 。 如果下标三元组 (i, j, k) 满足下述全部条件,则认为它是一个山形三元组 : i < j < k nums[i] &l…...
【智慧工地源码】基于AI视觉技术赋能智慧工地
伴随着技术的不断发展,信息化手段、移动技术、智能穿戴及工具在工程施工阶段的应用不断提升,智慧工地概念应运而生,庞大的建设规模催生着智慧工地的探索和研发。 建筑施工具有周期长、环境复杂、工序繁杂、人员流动性大等特点,所以…...
百科知识卡片制作技巧:提升信息传达效率的7个设计法则
我们的大脑天生偏爱图像而非文字。在进行深度学习或知识梳理时,我习惯将复杂的概念拆解为结构化的图谱,这就是百科知识卡片制作的核心价值所在。它不仅仅是信息的搬运,更是一种视觉思维的重组。但在很长一段时间里,这种重组过程被…...
Qwen3.5-4B-Claude-GGUF惊艳效果展示:开启‘显示思考过程’后的完整推理链
Qwen3.5-4B-Claude-GGUF惊艳效果展示:开启显示思考过程后的完整推理链 1. 模型核心能力概览 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个经过特殊优化的推理模型,它在保持轻量化的同时,显著提升了结构化分析和分步骤推理能…...
经典蓝牙协议:【A2DP,HSP/HFP,OBEX/OPP】—— 从协议栈到场景应用的深度解析
1. 蓝牙协议栈全景图:从音乐播放到文件传输 第一次接触蓝牙协议时,我盯着文档里密密麻麻的英文缩写直发懵——A2DP、HFP、OBEX这些字母组合看起来像某种密码。直到调试TWS耳机项目时,音乐卡顿和通话杂音的问题才让我明白:不同蓝牙…...
Wan2.2-I2V-A14B项目实战:从零搭建个人AI艺术画廊网站
Wan2.2-I2V-A14B项目实战:从零搭建个人AI艺术画廊网站 1. 项目概述与价值 想象一下,你可以在自己的网站上展示由AI生成的独特艺术作品,让访客欣赏、点赞甚至参与创作。这正是我们将要实现的个人AI艺术画廊网站。这个项目不仅能让你的创意作…...
从传统互联网到AI Agent:薪资涨幅有多夸张
第一,也是最重要的,别光看书、别光听课,你得动手干出一个东西来; 如果实在不知道咋整,能够直接抄知学堂新出的 「AILLM使用研发」 ,里面很多实战项目case,自己跟着教程做写到简历里,…...
DeepSeek-OCR · 万象识界落地实践:律所案卷扫描件→带章节锚点的Markdown知识库
DeepSeek-OCR 万象识界落地实践:律所案卷扫描件→带章节锚点的Markdown知识库 1. 项目背景与价值 在律师事务所的日常工作中,案卷管理一直是个令人头疼的问题。大量的纸质案卷需要扫描存档,但这些扫描件往往只是静态的图片文件,…...
冲刺待办列表管理化技术任务分解与估算
冲刺待办列表管理化技术任务分解与估算:高效协作的核心 在快节奏的软件开发中,冲刺待办列表(Sprint Backlog)是敏捷团队实现目标的关键工具。通过将复杂任务拆解为可执行单元并合理估算工作量,团队能提升交付效率与质…...
用Python和CCXT库从零搭建一个数字货币量化交易机器人(附完整代码)
用Python和CCXT库从零搭建数字货币量化交易机器人 数字货币市场24小时不间断运行,价格波动剧烈,这为量化交易提供了天然土壤。与传统人工交易相比,量化交易能避免情绪干扰,严格执行策略,快速捕捉市场机会。本文将手把手…...
基于MySQL的人脸特征数据库设计
基于MySQL的人脸特征数据库设计 1. 引言 人脸识别技术已经广泛应用于各个领域,从手机解锁到安防系统,都离不开高效的人脸特征存储和检索。当系统需要处理成千上万甚至百万级的人脸数据时,如何设计一个既能快速查询又能稳定运行的数据库就变…...
Kandinsky-5.0-I2V-Lite-5s图生视频入门必看:首帧选择+运动提示词写作黄金法则
Kandinsky-5.0-I2V-Lite-5s图生视频入门必看:首帧选择运动提示词写作黄金法则 1. 为什么选择Kandinsky-5.0-I2V-Lite-5s 如果你正在寻找一个简单易用的图生视频工具,Kandinsky-5.0-I2V-Lite-5s可能是你的理想选择。这个轻量级模型只需要一张图片和一句…...
