零基础微信小程序开发——全局配置之tabBar(保姆级教程+超详细)

在这里插入图片描述

🎥 作者简介: CSDN\阿里云\腾讯云\华为云开发社区优质创作者,专注分享大数据、Python、数据库、人工智能等领域的优质内容
🌸个人主页: 长风清留杨的博客
🍃形式准则: 无论成就大小,都保持一颗谦逊的心,尊重他人,虚心学习。
推荐专栏: Python入门到入魔,Mysql入门到入魔,Python入门基础大全,Flink入门到实战
🍂若缘分至此,无法再续相逢,愿你朝朝暮暮,皆有安好,晨曦微露道早安,日中炽热说午安,星河长明寄晚安🍂

全局配置

小程序开发中的全局配置文件是app.json,它位于小程序的根目录下。这个文件非常重要,因为它包含了小程序的一些基础信息和全局配置。

tabBar

什么是 tabBar

tabBar是移动端应用中一种常见的页面效果,它主要用于实现多个页面之间的快速切换。在小程序开发中,tabBar同样扮演着非常重要的角色。小程序中的tabBar通常被分为底部tabBar和顶部tabBar两种类型。

  1. 底部tabBar:
    • 底部tabBar是小程序中最为常见的一种tabBar类型。它位于屏幕的底部,用户可以通过点击不同的选项卡来切换不同的页面。
    • 底部tabBar中至少需要配置两个选项卡,最多可以配置五个选项卡。这些选项卡通常包括图标和文本,以直观地表示每个页面的功能和内容。
    • 底部tabBar的选项卡可以自定义样式,包括图标的颜色、文本的颜色、背景色等,以满足不同小程序的设计需求。
  2. 顶部tabBar:
    • 顶部tabBar相对较少见,它位于屏幕的顶部,用于实现页面的切换。
    • 与底部tabBar不同的是,当渲染顶部tabBar时,不显示图标,只显示文本。这可能是因为顶部空间有限,且用户通常更习惯于在底部进行页面切换操作。
    • 顶部tabBar的样式和配置相对较少,通常只包括文本和分隔线等简单元素。

注意:

  • tabBar中只能配置最少 2 个、最多 5 个 tab 页签
  • 当渲染顶部 tabBar 时,不显示 icon,只显示文本,也就是如果渲染顶部的话,不会出现图片,直接先是文字部分,例如首页、消息、联系我们

tabBar 的 6 个组成部分

  1. backgroundColor:这个属性用于设置tabBar的背景颜色。背景颜色被设置为红色。它定义了tabBar的整体背景色调,是用户体验中不可或缺的一部分,可以影响整个界面的视觉效果。
  2. selectedIconPath:这个属性指定了当tab项被选中时,显示的图标路径。选中时的图标被设置为一个蓝色的三角形图标。这个图标在用户与界面交互时提供了直观的视觉反馈。
  3. borderColor:这个属性用于设置tabBar上边框的颜色。在示例中,边框颜色被设置为黑色。边框可以增强tabBar的视觉边界,使其在页面上更加突出。
  4. iconPath:这个属性指定了当tab项未被选中时,显示的图标路径。未选中时的图标被设置为一个灰色的圆形图标。这个图标在默认情况下展示给用户,提供了关于tab功能的直观信息。
  5. selectedColor:这个属性用于设置tab上文字在选中时的颜色。选中时的文字颜色被设置为绿色。这有助于用户区分当前活动的tab项。
  6. color:这个属性用于设置tab上文字的默认(未选中)颜色。未选中时的文字颜色被设置为紫色。这为用户提供了关于哪些tab项是可用的直观信息。

tabBar 节点的配置项

属性类型必填默认值描述
positionStringbottomtabBar 的位置,支持 bottom(底部)或 top(顶部),但通常默认且更常见的是底部。
borderStyleStringblacktabBar 上边框的颜色,仅支持 black(黑色)或 white(白色),用于设置边框的显示颜色。
colorHexColor-tab 上文字的默认(未选中)颜色,使用十六进制颜色代码进行定义。
selectedColorHexColor-tab 上的文字选中时的颜色,同样使用十六进制颜色代码进行定义,用于区分选中状态的文字颜色。
backgroundColorHexColor-tabBar 的背景色,使用十六进制颜色代码进行定义,用于设置工具栏的背景色调。
listArray-tab 页签的列表,是一个数组类型,包含了多个 tab 项的配置信息,最少需要配置2个 tab,最多可配置5个 tab,以满足用户界面的导航需求。

每个 tab 项的配置选项

属性类型必填描述
pagePathString页面路径,页面必须在 pages 中预先定义
textStringtab 上显示的文字
iconPathString未选中时的图标路径;当 position 为 top 时,不显示 icon
selectedIconPathString当 position 为 top 时,不显示 icon(选中状态)

实战一下

需求

预期能达到以下效果,有底部的tabBar、分别是首页、消息、个人中心,选中之前是没有填充颜色的图标,选中后是填充颜色的图标

实现步骤
  1. 拷贝图标资源:
    需要将每个页面所需要的图标准备好,对应三组,分别是选中状态和非选中状态
  2. 新建 3 个对应的 tab 页面
    三个页面分别对应首页、信息、个人中心
  3. 配置 tabBar 选项
第一步拷贝图标

这些是需要的图标,可以看到选中是深色有填充的,没有选中是浅色没有填充的,那我们命名的时候可以这样名称,没有选中的默认为自己的名字,例如home,选中的加上 -active,例如home-active

需要原版图标的话直接私信我,或者关注公众号:小白的大数据之旅

第二步:新建 3 个对应的 tab 页面

三个tab页面分别是首页、消息和个人中心

在app.js中添加如下内容

  1. home 是首页
  2. message 是消息页面
  3. individual 是个人中心页面
{
    "pages": [
        "pages/home/home",
        "pages/message/message",
        "pages/individual/individual"
    ]
}

编写完上面的代码之后保存,对应的目录会自动创建

第三步:设置tabBar

在app.js中分别设置首页、消息、个人中心的页面,下面是app.json的源代码

{
    // 定义一个数组,用于存放小程序中所有页面的路径
    "pages": [
        "pages/home/home",          // 首页页面路径
        "pages/message/message",    // 消息页面路径
        "pages/individual/individual", // 个人中心页面路径
        "pages/index/index",        // 索引页面路径(通常作为默认页面,但这里可能用作其他用途)
        "pages/test/test",          // 测试页面路径
        "pages/logs/logs"           // 日志页面路径
    ],
    
    // 定义小程序窗口的表现
    "window": {
        "backgroundTextStyle": "dark",     // 下拉 loading 的样式,dark 为深色背景,light 为浅色背景
        "navigationBarBackgroundColor": "#2b4b6b", // 导航栏背景颜色
        "navigationBarTitleText": "公众号:小白的大数据之旅", // 导航栏标题文字
        "navigationBarTextStyle": "white", // 导航栏标题文字颜色
        "backgroundColor": "#efefef",      // 页面背景颜色
        "onReachBottomDistance": 100       // 页面上拉触底事件触发时距离页面底部距离
    },
    
    // 定义小程序底部标签栏的表现
    "tabBar": {
        "list": [
            {
                "pagePath": "pages/home/home",    // 页面路径,首页路径
                "text": "首页",                  // 标签栏上显示的文字
                "iconPath": "/images/tabs/home.png", // 未选中时的图标路径
                "selectedIconPath": "/images/tabs/home-active.png" // 选中时的图标路径
            },
            {
                "pagePath": "pages/message/message", // 页面路径,消息页面路径
                "text": "消息",                       // 标签栏上显示的文字
                "iconPath": "/images/tabs/mess.png", // 未选中时的图标路径
                "selectedIconPath": "/images/tabs/mess-active.png" // 选中时的图标路径
            },
            {
                "pagePath": "pages/individual/individual",  // 页面路径,个人中心页面路径
                "text": "个人中心",                          // 标签栏上显示的文字
                "iconPath": "/images/tabs/individual.png",  // 未选中时的图标路径
                "selectedIconPath": "/images/tabs/individual-active.png"// 选中时的图标路径
            }
        ]
    },
    
    // 小程序使用的样式版本,v2为推荐的最新版本
    "style": "v2",
    
    // 指明 sitemap.json 文件的位置,该文件用于配置小程序内搜索
    "sitemapLocation": "sitemap.json"
}

结果:


可以尝试点击下面的三个按钮,看看是什么样的效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/944609.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker redis安装

一.镜像拉取 docker pull redis:5.0新建文件 touch /home/redis/redis.conf touch /home/redis/redis_6379.pid # bind 192.168.1.100 10.0.0.1 # bind 127.0.0.1 ::1 #bind 127.0.0.1protected-mode noport 6379tcp-backlog 511requirepass roottimeout 0tcp-keepali…

0基础跟德姆(dom)一起学AI 自然语言处理08-认识RNN模型

1 什么是RNN模型 RNN(Recurrent Neural Network), 中文称作循环神经网络, 它一般以序列数据为输入, 通过网络内部的结构设计有效捕捉序列之间的关系特征, 一般也是以序列形式进行输出. 一般单层神经网络结构: RNN单层网络结构: 以时间步对RNN进行展开后的单层网络结构: RNN的…

Xilinx PCIe高速接口入门实战(三)

引言:为保证FPGA设备可以连接并被系统识别,本节讨论了PCIe基础规范和PCIe板卡电气规范的对FPGA配置时间具体要求。 1. 配置访问时间 在PCIe的标准系统中,当系统通电时,处理器上运行的配置软件开始扫描PCIe总线以发现机器拓扑。…

InfoNCE Loss详解(上)

引言 InfoNCE对比学习损失是学习句嵌入绕不开的知识点,本文就从头开始来探讨一下它是怎么来的。 先验知识 数学期望与大数定律 期望(expectation,expected value,数学期望,mathematical expectation)是随机变量的平均值&#…

抽象工厂设计模式的理解和实践

在软件开发中,设计模式是前人通过大量实践总结出的、可复用的、解决特定问题的设计方案。它们为我们提供了一种标准化的解决方案,使得代码更加简洁、灵活和易于维护。在众多设计模式中,抽象工厂模式(Abstract Factory Pattern&…

爱思唯尔word模板

爱思唯尔word模板 有时候并不一定非得latex https://download.csdn.net/download/qq_38998213/90199214 参考文献书签链接

【机器学习】工业 4.0 下机器学习如何驱动智能制造升级

我的个人主页 我的领域:人工智能篇,希望能帮助到大家!!!👍点赞 收藏❤ 随着科技的飞速发展,工业 4.0 浪潮正席卷全球制造业,而机器学习作为这一变革中的关键技术,正以前…

全面了解 SQL Server:功能、优势与最佳实践

SQL Server 是微软公司推出的一款关系型数据库管理系统(RDBMS),广泛应用于企业级数据存储、数据分析、应用开发等领域。作为全球最受欢迎的数据库管理系统之一,SQL Server 提供了强大的功能和工具,支持从小型应用到大型…

旅游管理系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…

攻防世界 robots

开启场景 根据提示访问/robots.txt,发现了 f1ag_1s_h3re.php 拼接访问 /f1ag_1s_h3re.php 发现了 flag cyberpeace{d8b7025ed93ed79d44f64e94f2527a17}

离线语音识别+青云客语音机器人(幼儿园级别教程)

1、使用步骤 确保已安装以下库: pip install vosk sounddevice requests pyttsx3 2、下载 Vosk 模型: 下载适合的中文模型,如 vosk-model-small-cn-0.22。 下载地址: https://alphacephei.com/vosk/models 将模型解压后放置在…

秒杀场景的设计思考

秒杀场景的设计思考 在学习Redis的之后,一个绕不开的话题就是秒杀系统的设计。本文将从下面👇🏻几个方面展开一下个人简单的理解: 秒杀场景的介绍设计的核心思路怎么限流、削峰、异步planB总结 ‍ 秒杀场景的介绍 秒杀场景是…

秒鲨后端之MyBatis【2】默认的类型别名、MyBatis的增删改查、idea中设置文件的配置模板、MyBatis获取参数值的两种方式、特殊SQL的执行

别忘了请点个赞收藏关注支持一下博主喵&#xff01;&#xff01;&#xff01;! ! ! 下篇更新&#xff1a; 秒鲨后端之MyBatis【3】自定义映射resultMap、动态SQL、MyBatis的缓存、MyBatis的逆向工程、分页插件。 默认的类型别名 MyBatis的增删改查 添加 <!--int insertUs…

2024年12月29日Github流行趋势

项目名称&#xff1a;cobalt 项目地址url&#xff1a;https://github.com/imputnet/cobalt项目语言&#xff1a;Svelte历史star数&#xff1a;22882今日star数&#xff1a;1049项目维护者&#xff1a;wukko, dumbmoron, Snazzah, lexito-o, KwiatekMiki项目简介&#xff1a;保存…

【LLM】OpenAI 的DAY12汇总和o3介绍

note o3 体现出的编程和数学能力&#xff0c;不仅达到了 AGI 的门槛&#xff0c;甚至摸到了 ASI&#xff08;超级人工智能&#xff09;的边。 Day 1&#xff1a;o1完全版&#xff0c;开场即巅峰 12天发布会的开场即是“炸场级”更新——o1完全版。相比此前的预览版本&#x…

国内独立开发者案例及免费送独立开发蓝图书

独立开发者在国内越来越受到关注&#xff0c;他们追求的是一种自由且自给自足的工作状态。 送这个&#xff1a; 少楠light&#xff08;Flomo、小报童、如果相机&#xff09;&#xff1a;他们是独立开发者的典范&#xff0c;不仅开发了多款产品&#xff0c;还坚信“剩者为王”…

【js】记录预览pdf文件

接口调用拿到pdf的文件流&#xff0c;用blob处理这个文件流拿到url&#xff0c;使用window.open跳转新的窗口进行预览 api({dataType: blob, }).then(res >{if(res.code 0){this.previewPDF(res,application/pdf;charsetutf-8,pdf文件名)} })previewPDF (res, type, fname…

Vue3 +Element-Plus el-select下拉菜单样式(局部生效)

下拉框代码 <el-selectclass"buttons-switch-group select-hub":teleported"false"style"width: 120px"v-model"queryParam.type"placeholder"请选择"size"mini"change"loadData"><el-option…

手机h5加桌面图标

手机h5应用1&#xff0c;网址浏览器添加到桌面&#xff0c;修改图标 关键代码 <!-- 手机h5加桌面图标 --> <!-- 安卓平台 chrome --> <link relapple-touch-icon-precomposed href<% BASE_URL %>logonew.png> <meta name"mobile-web-app-capab…

从家谱的层级结构 - 组合模式(Composite Pattern)

组合模式&#xff08;Composite Pattern&#xff09; 组合模式&#xff08;Composite Pattern&#xff09;组合模式概述组合模式涉及的角色talk is cheap&#xff0c; show you my code总结 组合模式&#xff08;Composite Pattern&#xff09; 组合模式&#xff08;Composite…