uniapp 小程序实现中间突起tabbar

先看下效果
uniapp 小程序实现中间突起tabbar

实现步骤

1.先引入uview ui,不会的可以看下我另外一篇文章,写的很详细
uniapp 中uview-ui的使用教程
https://blog.csdn.net/hu104160112/article/details/120076812?spm=1001.2014.3001.5501

2.创建tabbar 组件及页面
uniapp 小程序实现中间突起tabbar
3.pages.json文件中配置

{	
	"easycom": {
		"autoscan": true,
		"custom": {
			"^uni-(.*)": "@/components/uni-$1/uni-$1.vue",
			"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
		}
	},
	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
		
		{
			"path": "pages/tabbar/tabbar1",
			"style": {
				"navigationBarTitleText": "uni-app"
			}
		},
		{
			"path": "pages/tabbar/tabbar2",
			"style": {
				"navigationBarTitleText": "uni-app"
			}
		},
		{
			"path": "pages/tabbar/tabbar3",
			"style": {
				"navigationBarTitleText": "uni-app"
			}
		},
		{
			"path": "pages/tabbar/tabbar4",
			"style": {
				"navigationBarTitleText": "uni-app"
			}
		},
		{
			"path": "pages/tabbar/tabbar5",
			"style": {
				"navigationBarTitleText": "uni-app"
			}
		},
		{
			"path": "pages/index/index",
			"style": {
				"navigationBarTitleText": "uni-app"
			}
		}
	],
	"globalStyle": {
		"navigationBarTextStyle": "black",
		"navigationBarTitleText": "uni-app",
		"navigationBarBackgroundColor": "#F8F8F8",
		"backgroundColor": "#F8F8F8"
	},
	"tabBar": {
	    "list": [{
	        "pagePath": "pages/tabbar/tabbar1"	        
	    }, {
	        "pagePath": "pages/tabbar/tabbar2"	        
	    },{
	        "pagePath": "pages/tabbar/tabbar3"	        
	    },{
	        "pagePath": "pages/tabbar/tabbar4"
	    },{
	        "pagePath": "pages/tabbar/tabbar5"
	    }]
	}
}

4.tabbar组件

<template>
	<view>
		<view class="u-page">
			<!-- 所有内容的容器 -->
		</view>
		<!-- 与包裹页面所有内容的元素u-page同级,且在它的下方 -->
		<u-tabbar v-model="current" :list="list" :mid-button="true" active-color='#5098FF'></u-tabbar>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				list: [{
						iconPath: "home",
						selectedIconPath: "home-fill",
						text: '首页',
						isDot: true,
						customIcon: false,
						pagePath: '/pages/tabbar/tabbar1',
					},
					{
						iconPath: "photo",
						selectedIconPath: "photo-fill",
						text: '放映厅',
						customIcon: false,
						pagePath: '/pages/tabbar/tabbar2',
					},
					{
						iconPath: "https://cdn.uviewui.com/uview/common/min_button.png",
						selectedIconPath: "https://cdn.uviewui.com/uview/common/min_button_select.png",
						text: '发布',
						midButton: true,
						customIcon: false,
						pagePath: '/pages/tabbar/tabbar3',
					},
					{
						iconPath: "play-right",
						selectedIconPath: "play-right-fill",
						text: '直播',
						customIcon: false,
						pagePath: '/pages/tabbar/tabbar4',
					},
					{
						iconPath: "account",
						selectedIconPath: "account-fill",
						text: '我的',
						count: 23,
						isDot: false,
						customIcon: false,
						pagePath: '/pages/tabbar/tabbar5',
					}
				],
				current: 0
			}
		},
	}
</script>

5.tabbar1,2,3,4,5等页面

<template>
	<view>
		<view class="">tabbar1</view>
		<tabbar></tabbar>
	</view>
	
</template>

<script>
	import {tabbar} from "../../components/tabbar.vue"
	export default{
		components:{
			tabbar
		},
		data(){
			return {}
		},
	}
</script>

<style>
</style>

这样就可以了

下面是 tabbar组件里list的属性配置,也就是每个tabbar的配置

// 非凸起按钮未激活的图标,可以是uView内置图标名或自定义扩展图标库的图标
// 或者png图标的【绝对路径】,建议尺寸为80px * 80px
// 如果是中间凸起的按钮,只能使用图片,且建议为120px * 120px的png图片
// 自定义字体图标库教程:https://www.uviewui.com/guide/customIcon.html
list = [
	{
		iconPath: "home", //未激活(未选中)的图标
		selectedIconPath: "home-fill", // 激活(选中)的图标
		text: '首页', // tabbar显示的提示文字
		count: 2, // 红色角标显示的数字,如果需要移除角标,配置此参数为0即可
		isDot: true, // 如果配置此值为true,那么角标将会以红点的形式显示
		customIcon: false, // 如果使用自定义扩展的图标库字体,需配置此值为true
		midButton: false, // 如果是凸起按钮项,需配置此值为true
		pagePath: '', // 点击某一个tabbar时,跳转的路径,此路径必须是pagees.json中tabBar字段中定义的路径,需要以"/"开头
	}
]

uniapp 小程序实现中间突起tabbar

上一篇:操作系统实战(九)(Linux)


下一篇:uni-app之预加载和取消预加载(仅支持APP和H5)——uni.preloadPage、uni.unPreloadPage