uni-app自定义导航栏问题
引用插件:uniNavBar
1 2 3 4 5 | < 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,则又加入一个占位的组件
1 | < uni-status-bar v-if="statusBar" /> |
跟踪这个组件的源码,发现里面放了一个空的view,高度为系统statusBarHeight,又写死了一个样式,高度是20px,style属于element级别,应该高于类吧。所以这个高度应该就是20px了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | < 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的插件。
1 2 3 4 5 6 7 8 9 10 11 | < 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述