uni-app 吸顶出现错误,获取导航栏高度的方法

本文介绍了如何在uni-app中针对不同手机型号动态获取导航条的高度,以便实现页面吸顶样式。通过调用uni.createSelectorQuery()方法,选择导航条类名并获取其boundingClientRect,从而得到导航条的高度,并将其赋值给元素的top属性,实现自适应的吸顶效果。

uni-app 做吸顶样式时,由于手机型号的不同,导航条的高度也会有所区别,需要动态获取导航条的高度。

onReady(){
			    // .tui-navigation-bar为导航条类名
			    let info = uni.createSelectorQuery().select('.tui-navigation-bar')
			    info
			      .boundingClientRect((data) => {
			        this.stickyTop = data.height // stickyTop 需要设置的top高度
			      })
			      .exec()
		},
### 修改 `uni-nav-bar` 组件文字字体大小 为了调整 `uni-nav-bar` 组件固定顶部时的文字字体大小,可以通过自定义样式来实现。以下是具体的解决方案: #### 方法一:通过 CSS 覆盖默认样式 可以在项目的全局样式文件(通常是 `App.vue` 或者单独的 `.css` 文件)中覆盖 `uni-nav-bar` 的默认样式。 ```css /* App.vue */ .navBar .uni-navbar__header-container-inner { font-size: 18px !important; } ``` 这段代码将应用于所有使用该类名的地方,并强制设置导航栏内文本的字体大小为 18 像素[^1]。 #### 方法二:局部样式修改 如果只想针对特定页面应用不同的字体大小,则可以直接在对应页面的 `<style>` 标签里添加如下样式: ```html <template> <view class="navBar"> <navbar :title="taskName" :autoBack="false" titleStyle="font-weight: bold; font-size: 20px;" leftIconSize="20px" @leftClick="backPage"/> </view> </template> <style scoped> .navBar >>> .uni-navbar__header-container-inner { font-size: 20px !important; } </style> ``` 这里不仅设置了固定的字体大小,还利用了深嵌套选择器 (`>>>`) 来穿透作用域限制,确保样式能够正确生效于子组件内部元素[^2]。 #### 方法三:直接修改组件源码 对于更深入的需求,可以考虑克隆并修改官方仓库中的 `uni-nav-bar` 组件源码,增加一个属性用于控制字体大小。不过这种方法不推荐,因为这会影响后续更新以及维护成本。 ```javascript // 在组件 script 中新增 prop 定义 props: { fontSize: { type: String, default: '16px' } } // 使用时传递参数 <uni-nav-bar :fontSize="'24px'"></uni-nav-bar> ``` 这种方式虽然灵活度高,但是增加了复杂性和潜在的风险[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值