uniapp记录----z-paging的吸顶切换+uniapp自定义导航的实现
uniapp实现自定义导航
一.pages.json配置
{
"path" : "pages/tabbar/shuoshuo/shuoshuo",
"style" :
{
"navigationBarTitleText": "",
"navigationStyle":"custom",
"enablePullDownRefresh": true,
"app-plus": {
"scrollIndicator":"none"
}
}
}
二.使用graceui的页面模式进行开发
<gui-page :customHeader="true">
<!-- 自定义头部导航 -->
<view slot="gHeader">
</view>
</gui-page>
三.z-paging吸顶加切换
1.全拼模式的时候,z-paging的吸顶,会直接吸附在,手机屏幕的最上方,吸顶的tab,会和状态栏重叠交错。
2.原生导航的时候,全屏模式,会吸附在原生导航下面。但是不能自定义导航,就无法在导航中,添加丰富的内容。
3.所以要自定义导航+非全屏模式
4.z-paging的非全屏模式,需要两点配置。给z-paging组件,:fixed="false" height="1000rpx"
.
也就是取消全屏,并且给一个具体的高度。
四.uniapp+graceui+nvue+z-paging这种模式下的高度计算
1.状态栏高度
<script>
var graceJS = require('@/GraceUI5/js/grace.js');
export default{
onLoad : function(){
var systemInfo = graceJS.system();
console.log(systemInfo);
}
}
2.自定义导航高度
这里,需要从gui的gpage组件的属性上获取.默认的自定义导航高度为:
![](https://img2022.cnblogs.com/blog/1515769/202207/1515769-20220721005101858-1407658872.png)
:headerSets="{height:44, zIndex:100}"
// 1.获取页面主体高度
graceJS.getRefs('guiPage', this, 0, (ref)=>{
ref.getDomSize('guiPageBody', (e)=>{
// console.log(e)
// 2. 导航的高度
// 可以 使用 graceJS.select() 函数动态获取, 也可以使用 uni.upx2px 转换已知高度
// 轮播主体高度 = 页面高度 - 导航高度
this.mainHeight = e.height;
console.log(this.mainHeight)
});
});
3.屏幕高度
参考第二条
4.z-paging的高度=3-2-1