uni-app自定义导航栏问题

引用插件:uniNavBar

<uni-nav-bar statusBar="true" backgroundColor="#59AAFE" color="#FFFFFF" class="status-bar">
			<view slot="left">分类</view>
			<view>课程</view>
			<view slot="right"></view>
		</uni-nav-bar>

  

存在问题:

1. 给插件标签上定义css改变前、背景色是不行的。需要使用backgroundColor,color属性。

2. 非具名插槽,默认中间显示的文字,不居中,可以用flex布局,让左中右三个插槽平分,并让text剧中

3. 关于uni-nav-bar的height问题,从源码中看,他先定义了一个$nav-height: 44px;变量。

然后,如果定义statusBar=true,则又加入一个占位的组件

<uni-status-bar v-if="statusBar" />

 跟踪这个组件的源码,发现里面放了一个空的view,高度为系统statusBarHeight,又写死了一个样式,高度是20px,style属于element级别,应该高于类吧。所以这个高度应该就是20px了。

<template>
	<view :style="{ height: statusBarHeight }" class="uni-status-bar">
		<slot />
	</view>
</template>

<script>
	var statusBarHeight = uni.getSystemInfoSync().statusBarHeight + 'px'
	export default {
		name: 'UniStatusBar',
		data() {
			return {
				statusBarHeight: statusBarHeight
			}
		}
	}
</script>

<style lang="scss" scoped>
	.uni-status-bar {
		width: 750rpx;
		height: 20px;
		// height: var(--status-bar-height);
	}
</style>

 

那问题就来了,如果下面再放一个fix的组件,怎么把这个高度减去呢?44+20=64px。

我这里引用了一个mescroll的插件。

<mescroll-uni 
			class="jp-course-list" 
			ref="mescrollRef" 
			@init="mescrollInit" 
			@down="downCallback" 
			@up="upCallback" 
			:down="downOption" 
			:up="upOption"
			:topbar="true"
			:top="74"
		>

  

在真机和小程序下测试通过

 

 

===================================================================================

20200601

mescroll-body已经不是浮动的了,直接块级元素排列,不需要再计算偏移量了,改用mescroll-body

posted on 2020-05-31 19:07  zhouyu  阅读(5593)  评论(0编辑  收藏  举报

导航