通过调用 wx.getSystemInfoSync 获取
const res = wx.getSystemInfoSync()
this.setData({
statusBarHeight:res.statusBarHeight
})
通过获取右上角胶囊的位置信息计算,navBarPadding为导航栏上下的间隙
let res = wx.getMenuButtonBoundingClientRect()
let navBarPadding = (res.top - this.data.setStatusBarHeight) * 2
this.setData({
navBarHeight: res.height + navBarPadding
})
app.js:
App({
onLaunch () {
this.setStatusBarHeight()
this.setNavBar()
},
//设置系统状态栏高度
setStatusBarHeight(){
try {
const res = wx.getSystemInfoSync()
this.globalData.statusBarHeight = res.statusBarHeight
}catch(error){
console.log(error)
}
},
//设置导航栏height
setNavBar(){
let res = wx.getMenuButtonBoundingClientRect()
let navBarPadding = (res.top - this.data.setStatusBarHeight) * 2
this.globalData.navBarHeight = res.height + navBarPadding
},
globalData: {
statusBarHeight: 20,
navBarHeight: 44
}
})
wxml:
<view class="top-bar-wrap">
<view class="top-bar-main" style="padding-top:{{statusBarHeight}}px;height:{{navBarHeight}}px">
自定义导航栏
</view>
</view>
wxss:
.top-bar-wrap{
z-index: 9999;
position: fixed;
top: 0;
left: 0;
width: 100%;
}
.top-bar-main{
width: 100%;
display: flex;
justify-content: center;
align-items: center;
color:#fff;
}
js:
const app = getApp()
Component({
data: {
statusBarHeight: app.globalData.statusBarHeight,
navBarHeight: app.globalData.navBarHeight
}
})
setStatusBarHeight、setNavBar这两个方法最好写到app.js中,获取好放在app.globalData中,这两个高度可能不止自定义导航栏需要用到。
比如使用了自定义导航栏的页面,因为自定义导航栏是fixed定位脱离文档流,导致整个页面就会上移,所以要给页面加上padding-top,高度跟自定义导航栏的高度一致,即 statusBarHeight + navBarHeight。
需要把导航固定在底部?只能滑动内容,导航菜单固定不动的。这篇文章主要讲解三种实现方案,包括:fixed,absolute,以及css3的flex布局。
mui的底部菜单,有点费时了,尝试了用vue写,纯js写,还有根据mui的写,还是有些问题和麻烦。直到看了网上的一些例子,才想明白,之前一直是一种点击触发事件才高亮的思维去做
写在最前:移动端中导航的网格式布局无处无在,宽高怎么设置相适应?元素怎么居中对齐?不同场景怎么选择代码最高效?巧妙使用margin、padding等基础属性,小小技巧可以解决许多烦恼!
在快速建站中,每一个细微的方面都会影响网站的优化效果。因此,在做营销网站时,有必要充分考虑并优化每个细节。今天,我们将与您分享一个在实践中容易被忽略且非常重要的细节,即网站导航的设计。
导航切换封装一个公用组件Tabbar,在需要导航页的页面引入组件即可。使用缓存是为了保存选中路由的 tabIndex ,在刷新页面的时候,依然可以保持(选中/激活)状态。
近期开发中遇到导航栏下滑吸顶的需求,经过方案调研,发现position:sticky可以简单快捷的实现功能。sticky(粘贴定位)可以被认为是相对定位和固定定位的混合,元素在跨越特定阀值前为相对定位
大家应该用过像hao123、2345导航、360导航等导航网站吧,随着互联网时代的的发展,导航网站变的越发臃肿,里面挂载了很多广告,新闻等,使的网站看上去很不美观
浏览器历史记录有两种写入方式:分别有push和replace,push是追加历史记录,replace是替换当前记录,路由跳转时是push,如何开启replace模式:
在使用elment-ui做后台开发过程中,发现如果使用this.$router.push跳到其他的路由,菜单导航不会高亮的问题,下面给出3种解决方案。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!