uniapp 顶部tabBar

uniapp 顶部tabBar
1.效果图
在这里插入图片描述
2.组件代码

<template>
	<view>
		<view class="content">
			<scroll-view class="noScorll bar-view" scroll-x scroll-with-animation>
				<view class="titleBar">

					<view class="barItem" v-for="(item,index) in tabs" :key="index" @click="changeTab(index)">
						<view :class="{'textBar':index==value,'textBar2':index!=value}">{{item.name}}</view>
						<view :class="{'bottomLine':index==value,'bottomLine2':index!=value}"></view>
					</view>

				</view>
			</scroll-view>
		</view>
	</view>
</template>

<script>
	export default {
		props: {
			value: { // vue 语法糖, v-model双向绑定:1. props声明value, 2. 修改它时触发input事件传递
				type: Number,
				default: 0
			},
			tabs: { // 标签选项数组
				type: Array,
				default: () => [{
						id: 1,
						name: '1'
					},
					{
						id: 2,
						name: '2'
					},
					{
						id: 3,
						name: '3'
					}
				]
			}
		},

		data() {
			return {

			}
		},
		methods: {

			//  切换标签选项
			changeTab(index) {
				this.$emit('input', index)
			}

		}
	}
</script>

<style>
	.content {
		background-color: #FFFFFF;
		padding: 20rpx;
		border-bottom: 1px solid #C0C0C0;
	}

	.bar-view {
		width: 100%;
		text-align: center;
		white-space: nowrap;

	}

	.titleBar {
		display: flex;
		flex-direction: row;
		align-items: center;
	}

	.barItem {
		display: flex;
		flex-direction: column;
		margin-right: 40rpx;
	}

	.bottomLine {
		width: 70rpx;
		height: 10rpx;
		background-color: #FFAC3E;
		border-radius: 10rpx;
		margin-top: 10rpx;
	}

	.bottomLine2 {
		width: 70rpx;
		height: 10rpx;
		border-radius: 10rpx;
		margin-top: 10rpx;
	}

	.textBar {
		color: #FFAC3E;
	}

	.textBar2 {
		color: #160e05;
	}

	.line {
		height: 1px;
		background-color: #CCCCCC;
		margin: 20rpx 20rpx;
	}
</style>

2.主页面代码:引入组件

<tab-bar ref="tabBar" :tabs="tabs" v-model="tabIndex"></tab-bar>
import tabBar from '@/components/tabBar2.vue'
components: {
			tabBar,
		},
data() {
			return {
				tabs: [{
					name: '园区'
				}, {
					name: '楼宇'
				}, {
					name: '地块'
				}, {
					name: '厂房'
				}, {
					name: '产业'
				}, {
					name: '企业'
				}, {
					name: '产品'
				}, {
					name: '资质'
				}, {
					name: '专利'
				}, {
					name: '金融'
				}],
				tabIndex: 0, // 当前tab的下标
				
			}
		},
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值