uniapp顶部状态栏自定义设置

步骤:

第一步:现在pages.json文件夹中设置:
“navigationStyle”: “custom” (取消默认的原生导航栏)如需其它设置 uniapp

代码:

(样式设置这里相当于全局设置
在这里插入图片描述
(或者可以根据业务需求设置单页面自定义导航栏
在这里插入图片描述
第二步:将顶部状态栏自定义设置封装成组件提高组件复用性
代码块:

<template>
	<view class="_navbar" :style="{ height:`${trStyle.height + trStyle.top + bottomEx}px`}">
		<view class="_navbar_container" :style="{ height:`${trStyle.height}px`,top:`${trStyle.top}px` }">
			<view  class="_navbar_back" @click="uni.navigateBack()">
				<i class="iconfont icon-arrow-left-bold" style="font-size:40rpx"></i>
				<view class="zuo"><image src="../../static/zuojiantou.png" mode="" class="img"></image></view>
			
			</view>
			<view :style="{ height:`${trStyle.height }px`,lineHeight:`${trStyle.height }px` }" class="_navbar_title">{{ title }}</view>
		</view>
	</view>
</template>
<script>
	export default{
			name:"Navbar",
		data(){
			return {
				trStyle:uni.getMenuButtonBoundingClientRect(),
				background :'transparent',
				bottomEx:10,
			}
		},
		mounted(){	
			uni.$on('pageScroll',top => {
				let parentRoute = this.$parent.$scope.route
				let pages = getCurrentPages()
				let page = pages[pages.length - 1]
				let currentRoute = page.route
				if(parentRoute === currentRoute){
					this.$nextTick(()=>{
						if(top === 0) this.background = 'transparent'
						else if(top > this.trStyle.height + this.trStyle.top + this.bottomEx) this.background = '#2D248B'
						else this.background = `rgba(#2D248B, ${ top/this.trStyle.height + this.trStyle.top + this.bottomEx })`
					})
				}
			})
		},
		beforeUnmount(){
			uni.$off('pageScroll')
		},
		props:{
			back:{
				type:Boolean,
				default:true,
			},
			title:{
				type:String,
				default:'某某职业技术学院'
			}
		},
	}
</script>
<style lang="scss">
	@import '~@/styles/variable.scss';
	@import '~@/styles/mixins.scss';
	._navbar{
		width:750rpx;
		position:fixed;
		z-index:10000;
		transition:all 0.2s linear;
		background: linear-gradient(90deg, #AF251A 0%, #FA582B 51%, #AF251A 100%);
		._navbar_container{
			width:750rpx;
			position:absolute;
			left:0;
			bottom:0;
			._navbar_back{
				width: 100rpx;
				.img{
					width: 38rpx;
					height: 38rpx;
				}
				@include flex();
				color:#000;
				height:100%;
				font-size:40rpx;
				//margin-left:20rpx;
				cursor:pointer;
			}
			._navbar_title{
				position:absolute;
				left:50%;
				top:0rpx;
				height:100%;
				transform:translateX(-50%);
				font-size:30rpx;
				font-family: Alibaba PuHuiTi 2.0-55 Regular, Alibaba PuHuiTi 20;
				font-weight: normal;
				color:#FFF;
			}
		}
		
	}
</style>

第三步:将组件引入页面:
在这里插入图片描述
第四步:在页面data中设置:
在这里插入图片描述
根据以上步骤设置不会出现报错问题(本人在实际项目开发中使用)
此组件适配各种机型(包括iOS机型)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值