uniapp 动态 tabbar

这篇具有很好参考价值的文章主要介绍了uniapp 动态 tabbar。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在开发 H5 项目时被动态 tabbar 困扰了许久,在网上搜的内容也大抵用不上,恍然大悟之后才有了下面的思路

动态 tabbar 主要是作用在需要针对不同的用户类型显示不同的内容,下面是代码实现:

首先要将所有用到的 tabbar 路径写进 pages.json 里

"tabBar": {
		"list": [{
				"pagePath": "  "

			},
			{
				"pagePath": "  "

			},
			{
				"pagePath": "  "

			},
			{
				"pagePath": "  "
			},
			{
				"pagePath": "  "
			},
			{
				"pagePath": "  "
			},
			{
				"pagePath": "  "
			},
			{
				"pagePath": "  "
			}
		]
	},

 其次创建一个 js 文件,将动态 tabbar 的配置信息写入

// 个人数据
export const xxx = [{
		"pagePath": '  ',
		"text": '  ',
		"iconPath": ' ',
		"selectedIconPath": '  '
	},
	{
		"pagePath": '  ',
		"text": '  ',
		"iconPath": '  ',
		"selectedIconPath": '  ',
	},
	{
		"pagePath": '  ',
		"text": '  ',
		"iconPath": '  ',
		"selectedIconPath": '  '
	},
	{
		"pagePath": '  ',
		"text": '  ',
		"iconPath": '  ',
		"selectedIconPath": '  '
	},
	{
		"pagePath": '  ',
		"text": '  ',
		"iconPath": '   ',
		"selectedIconPath": '  '
	},
]

// police 数据
export const xxx = [{
		"pagePath": '  ',
		"text": '  ',
		"iconPath": '  ',
		"selectedIconPath": '  '
	},
	{
		"pagePath": '  ',
		"text": '  ',
		"iconPath": '  ',
		"selectedIconPath": '  '
	},
	{
		"pagePath": '  ',
		"text": '  ',
		"iconPath": '  ',
		"selectedIconPath": '  '
	},
	{
		"pagePath": '  ',
		"text": '  ',
		"iconPath": '  ',
		"selectedIconPath": '  '
	},
]

通过遍历的方式构建 tabbar 的 UI 结构

<template>
	<view class="myTabbar">
		<view v-for="(item, index) in person" 
			:key="index" class="tabbar" 
             // 可以在 click 事件中执行一些选中项的样式切换以及路由跳转等功能
			@click="changeActive(index, item.pagePath)">  
			<view class="item">
				<uni-icons v-if="active === index" custom-prefix="iconfont"
					:type="item.selectedIconPath" color="#fff" size="25px">
				</uni-icons>
				<uni-icons v-else custom-prefix="iconfont" 
					:type="item.iconPath" color="#ccc" size="25px">
				</uni-icons>
			</view>
			<view class="text" :class="{ txt: active === index }">{{ item.text }}</view>
		</view>
	</view>
</template>

<script setup>
	JS 内容暂时不进行详解,懂得都懂

    { 通过 点击时的 index 为 active 选中项赋值 }
</script>

<style lang="scss">
.myTabbar {
	position: fixed;
	bottom: 0;
	display: flex;
	justify-content: space-between;
	width: 100%;
	height: 100rpx;
	background-color: #005aaa;

	.tabbar {
		display: flex;
		flex-direction: column;
		justify-content: space-around;
		align-items: center;
		width: 20%;
		height: 100%;

		.item {
			width: 40rpx;
			height: 40rpx;
			text-align: center;
			margin-top: 10rpx;
		}

		.text {
			color: #ccc;
			font-size: 14px;
		}
		.txt {
			color: #fff;
		}
	}
}
</style>

最后在所有需要引入 tabbar 的页面对原本的 tabbar 进行隐藏

<template>
    <tabbar />
</template>

<script setup>
// 导入 tabbar
import tabbar from '@/components/tabbar/tabbar .vue';
import { onReady } from '@dcloudio/uni-app';

// 在组件加载完成时隐藏 tabbar
onReady(() => {
	uni.hideTabBar();
});
</script>

<style>
    固定在底部的样式已经在 tabbar 组件中写了,这里不过多赘述
</style>

亲测功能可在 H5 项目中完美实现,但还有一些瑕疵,即在 tabbar 页面首次进入时会出现闪白的情况,暂时未能解决!

注:此项目 CV 即可食用!!!  (手动狗头保命。。。)

如果本帖能帮助到大家,希望大家多多点赞三连鼓励,有问题可以留在评论区,会努力帮大家实现!文章来源地址https://www.toymoban.com/news/detail-510652.html

到了这里,关于uniapp 动态 tabbar的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp自定义动态tabbar及全局挂载底部自定义组件

    本篇文章解决的问题如下: 1:uniapp在pages.json中定义的tabbar,在非tabbar页面的时候不会显示,所以自定义了一个tabbar组件。(注意是自定义组件不是官方的custom-tab-bar组件) 2:有些tabbar需要动态变化,会员登陆前和会员登陆后可能会需要在tabbar上面展示不同的项目,所以要做

    2024年02月02日
    浏览(60)
  • uniapp 动态tabBar(全过程包含vuex 组件 配置等)

       (装船权限)    (卸船权限) 1.首先我们需要在pages.json配置tabbar  和pages (配置所有tabbar路径) 2.配置动态tabBar.js 如图↓  代码↓ 3.使用vuex对tabBar列表数据进行一个存储赋值 index.js↓ tabBar.js↓ 创建一个tabBar组件↓  代码↓ 5.在存在tabbar的页面中都需要引入组件,并传

    2024年02月11日
    浏览(39)
  • uniapp自定义tabbar(支持中间凸起,角标,动态隐藏tab,全端适用)

    在使用uniapp进行开发时,tabbar是我们使用的很频繁的一个组件,但是在特定的平台会有一些使用上的限制,无法通过一套代码来做通用平台的适配。比如说中间按钮凸起,动态隐藏某个tab(不同角色展示不同功能),使用字体图标,数字角标等,这些功能不是所有平台都支持

    2024年02月02日
    浏览(41)
  • uniapp开发小程序-实现中间凸起的 tabbar

    1.首先在 pages.json 文件中进行tabbar的样式和列表配置,代码如下: 2.在components文件中封装一个Tabbar 组件,命名为 TabBar.vue 代码如下: 3.在 mian.js 全局注册组件 4.在页面中使用组件

    2024年02月14日
    浏览(36)
  • uniApp开发小程序自定义tabBar底部导航栏+tabBar中间凸起自定义样式实现

            先看效果是否可以满足你们,如果可以满足你只要一步一步照着做绝对没有错。         本人技术不佳,研究了一整天,全网的大佬们写的博客看的晕头转向,避免大伙再走弯路,跟着我以下步骤一点一点来绝对可以实现。         最终效果图: (如果你

    2024年02月04日
    浏览(50)
  • uniapp 开发小程序的时候使用自定义 tabbar 时出现切换页面闪烁的情况

    问题:在使用自定义组件的时候可以看到页面切换明显的闪烁, 这种体验是很不好的, 当然最好的方式就是使用原生导航栏, 不要搞花里胡哨的东西。 来看下体验不好的效果 优化调整 先说思路,就是仍然设置原生 tabbar, 在应用启动的时候主动隐藏原生 tabbar, 然后使用自定义组

    2024年02月03日
    浏览(39)
  • GPT问答记录:微信小程序动态tabBar开发配置(服务端+前端代码)

    答1: 好的,下面是一个具体的方案供你参考,包括数据库表设计、Java 后台代码和小程序前端代码。请注意,这个方案仅供参考,具体实现可能需要根据你的实际需求进行调整。 数据库表设计 首先,需要设计一个 tabBar 数据表来存储 tabBar 配置信息,该表包含以下字段: i

    2023年04月22日
    浏览(51)
  • uniapp 开发小程序之实现不同身份展示不同的 tabbar(底部导航栏),附带相关问题解答

    效果展示:   引言 在开发过程中逐渐意识到uniapp原生的tabbar可能不能满足开发要求,通过浏览博客才选择使用uView的Tabbar 底部导航栏来实现,我选择用的是2X版本 安装 我是使用Hbuilder插件的方式引入的组件库,安装配置可以看这篇: 下载安装方式配置 | uView 2.0 - 全面兼容

    2024年02月11日
    浏览(41)
  • uniapp使用vue3和ts开发小程序自定义tab栏,实现自定义凸出tabbar效果

    要实现自定义的tabbar效果,可以使用自定义tab覆盖主tab来实现,当程序启动或者从后台显示在前台时隐藏自带的tab来实现。自定义一个tab组件,然后在里面实现自定义的逻辑。 组件中所使用的组件api可以看:Tabbar 底部导航栏 | uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-

    2024年02月04日
    浏览(43)
  • uniapp和小程序设置tabBar和显示与隐藏tabBar

    (1)设置tabBar: index number 是 tabBar 的哪一项,从左边算起,索引从0开始 text string 否 tab 上按钮文字 iconPath string 否 图片路径 selectedIconPath string 否 选中时的图片路径 pagePath string 否 页面绝对路径 visible boolean 否 tab 是否显示 (2)显示tabBar: (3)隐藏tabBar:

    2024年02月08日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包