uniapp 自定义tabBar导航栏

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

1.在App.vue文件里把原生的tabBar导航栏,隐藏掉

//App.vue
onLaunch: function() {
        //隐藏tabBar   
		uni.hideTabBar()
		uni.removeStorageSync('selectedIndex');
	},

2.在components文件下,创建一个uni-tab-bar.vue文件

<template>
	<!-- <view class="tabBars">
		<view class="tabs" v-for="(item,index) in tabList" :key="index" @tap="switchTab(index)">
			<image class="imgs" :src="$jointImage(item.selectedIconPath)" v-if="item.state"></image>
			<image class="imgs" :src="$jointImage(item.iconPath)" v-else></image>
			<view class="text" :style="{color:isActive(item.pagePath) ? ' #76bd21' : '' }">{{item.text}}</view>
		</view>
	</view> -->
	<uni-transition mode-class="fade" :duration="200" :show="true">
		<view>
			<view class="tab-content">
				<slot />
			</view>
			<view class="tabbar">
				<view class="navigator">
					<view ref='warpper' class="warpper">
						<view ref="navItem" class="navigator-item" v-for="(item,index) in tabList" :key="item.pagePath"
							@click="switchTab(item,index)" :data-index='index'>
							<image class="icon" :src="$jointImage(item.iconPath)" v-if="selectedIndex !== index">
							</image>
							<image class="icon" :src="$jointImage(item.selectedIconPath)" v-else></image>
							<text :class="['item-text',{'text-active':selectedIndex === index}]">{{item.text}}</text>
						</view>
					</view>
				</view>
			</view>
		</view>
	</uni-transition>
</template>

<script>
	export default {
		data() {
			return {
				selectedIndex: uni.getStorageSync('selectedIndex') || 0,
				configuration: {},
				tabList: [],
			};
		},
		mounted() {
			this.alliconSet()
		},
		methods: {
			alliconSet() {
				uni.$http.post('index/iconSet', {}).then(res => {
					this.configuration = res.data.data
					this.tabList = [{
							pagePath: "/pages/index/index",
							text: "首页",
							state: true,
							iconPath: this.configuration.tabbar1_nocheck,
							selectedIconPath: this.configuration.tabbar1_check
						},

						{
							pagePath: "/pages/menu/menu",
							text: "点单",
							state: false,
							iconPath: this.configuration.tabbar2_nocheck,
							selectedIconPath: this.configuration.tabbar2_check
						},
						{
							pagePath: "/pages/order_two/order_two",
							text: "订单",
							state: false,
							iconPath: this.configuration.tabbar3_nocheck,
							selectedIconPath: this.configuration.tabbar3_check
						},
						{
							pagePath: "/pages/my/my",
							text: "我的",
							state: false,
							iconPath: this.configuration.tabbar4_nocheck,
							selectedIconPath: this.configuration.tabbar4_check
						},
					]
				})
			},
			switchTab(items, indexs) {
				uni.switchTab({
					url: `${this.tabList[indexs].pagePath}`
				});
				this.tabList.forEach((v, i) => {
					if (items.pagePath === v.pagePath) {
						uni.setStorageSync('selectedIndex', indexs);
					}
				})

			},
		},
	};
</script>

<style lang="scss" scoped>
	.tabbar {
		position: fixed;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 140rpx;
		z-index: 999;
		background: #F5F5F5;
		border-top: 2rpx solid #eee;
	}

	.navigator {
		width: 85%;
		margin: 0 auto;
		padding: 20rpx;
		overflow: hidden;
	}

	.warpper {
		display: flex;
		justify-content: space-between;
		width: auto;
		transition-timing-function: ease-out;
	}

	.navigator-item {
		display: flex;
		align-items: center;
		flex-direction: column;
		width: 50rpx;
		height: 100%;
	}

	.item-text {
		margin-top: 6rpx;
		color: #777E86;
		font-size: 24rpx;
	}

	.text-active {
		color: #76bd21 !important;
	}

	.icon {
		width: 24px;
		height: 24px;
	}
</style>

3.在main.js引入组件

import UniTabBar from '@/components/uni-tab-bar.vue'
Vue.component('UniTabBar', UniTabBar)

4.在需要的页面,使用组件

//index.vue

<template>
	<view>
		<UniTabBar />
	</view>
</template>

文章来源地址https://www.toymoban.com/news/detail-847231.html

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

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

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

相关文章

  • uni-app 微信小程序之自定义中间圆形tabbar

    首先在 pages.json 文件中,新建一个 tabbar 页面 此页面主要是写 tabbar的html样式和布局,引用主页面代码,通过 v-if 控制进行展示 index , search , maim , news , me 一级页面 css 样式文件太多了就不贴出来了

    2024年02月03日
    浏览(61)
  • uni-app tabbar组件

    锋哥原创的uni-app视频教程: 2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中..._哔哩哔哩_bilibili 2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中...共计23条视频,包括:第1讲 uni-app简介、第2讲 uni-app环境搭建、第3讲 uni-app之HelloWorld实现等,

    2024年02月04日
    浏览(50)
  • uni-app动态tabBar,根据不同用户展示不同的tabBar

    因为我们用的是uni-app框架开发,所以在创建项目的时候直接创建uni-ui的项目即可,这个项目模板中自带了uni的一些好用的组件和api。 起初我想着这个效果不难实现,因为官方也有api可以直接使用,所以我最开始尝试就是使用uni的api完成,也就是这个 :uni.setTabBarItem(options) 我

    2024年02月09日
    浏览(46)
  • uni-app 之 tabBar 底部切换按钮

    uni-app 之 tabBar 底部切换按钮 1693289945724.png // 常用颜色 // d81e06 紅 // #f4ea2a 黃 // #1afa29 綠 // #1296db 藍 // #13227a 青 // #d4237a 紫 // #ffffff 白 // #2c2c2c 黑

    2024年02月09日
    浏览(59)
  • uniapp 自定义tabBar导航栏

    1.在App.vue文件里把原生的tabBar导航栏,隐藏掉 2.在components文件下,创建一个uni-tab-bar.vue文件 3.在main.js引入组件 4.在需要的页面,使用组件

    2024年04月11日
    浏览(33)
  • uni-app教程一(项目创建、tabbar配置、运行

    导入静态资源包(图片) 页面tabbar配置 { “pages”: [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages { “path”: “pages/index/index”, “style”: { “navigationBarTitleText”: “首页” } }, { “path”: “pages/news/news”, “style”: { “navigationBarTitleText”: “动态

    2024年04月23日
    浏览(48)
  • uni-app uni.switchTab和uni.reLaunch跳转tabbar页面

    uni.switchTab: 跳转列表不会刷新 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。 uni.reLaunch: 跳转列表会刷新 关闭所有页面,打开到应用内的某个页面。( 可以跳转到tabBar 页面 ) 但如果是列表的自定义表头有多个title的时候需要加参数才能返回到对应的列表 如下图所示

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

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

    2024年02月04日
    浏览(50)
  • uni-app 中两个系统各自显示不同的tabBar

    最近在一个 uni-app 项目中遇到一个需求,在登录页面成功登录以后需要判断身份,不同的身份的进入不同的 tabBar 页面,但是在 uni-app 项目中 pages.json 中的 tabBar 的 list 数组只有一个,且不能写成动态的,那如何实现这个需求呢?答案是需要我们自定义 tabBar 。 目录 1、我们确定在

    2024年04月13日
    浏览(49)
  • 解决uni-app小程序原生tabbar 添加阴影问题

    下面是实现的效果  步骤1 创建一个组件  文件名和组件名要一致  步骤2  在组件中实现阴影效果 步骤3 在tabbar 页面使用  直接使用 即可 不用引入  

    2024年02月07日
    浏览(62)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包