uni-app设置全局属性globalStyle

uni-app修炼之路(五)

参考官方文档:https://uniapp.dcloud.io/collocation/pages

应用的状态栏、导航条、标题、窗口背景色等这些公共的样式一般情况下都会写在globalStyle里面。这样页面就无需进行单独的配置了。

属性类型默认值描述平台差异说明
navigationBarBackgroundColorHexColor#F7F7F7导航栏背景颜色(同状态栏背景色)APP与H5为#F7F7F7,小程序平台请参考相应小程序文档
navigationBarTextStyleStringwhite导航栏标题颜色及状态栏前景颜色,仅支持 black/white
navigationBarTitleTextString导航栏标题文字内容
navigationStyleStringdefault导航栏样式,仅支持 default/custom。custom即取消默认的原生导航栏,需看使用注意微信小程序 7.0+、百度小程序、H5、App(2.0.3+)
backgroundColorHexColor#ffffff下拉显示出来的窗口的背景色微信小程序
backgroundTextStyleStringdark下拉 loading 的样式,仅支持 dark / light微信小程序
enablePullDownRefreshBooleanfalse是否开启下拉刷新,详见页面生命周期。
onReachBottomDistanceNumber50页面上拉触底事件触发时距页面底部距离,单位只支持px,详见页面生命周期
backgroundColorTopHexColor#ffffff顶部窗口的背景色(bounce回弹区域)仅 iOS 平台
backgroundColorBottomHexColor#ffffff底部窗口的背景色(bounce回弹区域)仅 iOS 平台
titleImageString导航栏图片地址(替换当前文字标题),支付宝小程序内必须使用https的图片链接地址 支付宝小程序、H5、APP
transparentTitleStringnone导航栏整体(前景、背景)透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明支付宝小程序、H5、APP
titlePenetrateStringNO导航栏点击穿透支付宝小程序、H5
pageOrientationStringportrait横屏配置,屏幕旋转设置,仅支持 auto / portrait / landscape 详见 响应显示区域变化App 2.4.7+、微信小程序
animationTypeStringpop-in窗口显示的动画效果,详见:窗口动画App
animationDurationNumber300窗口显示动画的持续时间,单位为 msApp
app-plusObject设置编译到 App 平台的特定样式,配置项参考下方 app-plusApp
h5Object设置编译到 H5 平台的特定样式,配置项参考下方 H5H5
mp-alipayObject设置编译到 mp-alipay 平台的特定样式,配置项参考下方 MP-ALIPAY支付宝小程序
mp-weixinObject设置编译到 mp-weixin 平台的特定样式微信小程序
mp-baiduObject设置编译到 mp-baidu 平台的特定样式百度小程序
mp-toutiaoObject设置编译到 mp-toutiao 平台的特定样式字节跳动小程序
mp-qqObject设置编译到 mp-qq 平台的特定样式QQ小程序
usingComponentsObject引用小程序组件,参考 小程序组件
renderingModeString同层渲染,webrtc(实时音视频) 无法正常时尝试配置 seperated 强制关掉同层微信小程序

注意
支付宝小程序使用titleImage时必须使用https的图片链接地址,需要真机调试才能看到效果,支付宝开发者工具内无效果
globalStyle中设置的titleImage也会覆盖掉pages->style内的设置文字标题

page中声明的style是要优先于globalStyle的。
例如下面的pages.json中,在globalStyle中我们设置的"navigationBarTitleText": "社交app",但是在index页面我们的"navigationBarTitleText": "uni-app",所以最终在index页面的导航栏标题为uni-app。

pages.json:

{
	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
		{
			"path": "pages/index/index",
			"style": {
				"navigationBarTitleText": "uni-app"
			}
		}
	    ,{
            "path" : "pages/ceshi/ceshi",
            "style" : {}
        }
    ],
	"globalStyle": {
		"navigationBarTextStyle": "black",
		"navigationBarTitleText": "社交app",
		"navigationBarBackgroundColor": "#F8F8F8",
		"backgroundColor": "#F8F8F8"
	}
}

在globalStyle中我们经常遇到设置颜色取色的问题,有时候我们看到一个比较好看的颜色,我们想拿过来用,那么首先需要知道他的值,这里推荐使用colos lite这个软件,安装包下载链接:https://pan.baidu.com/s/16AkiaHU1mGPsIwm9aeQdrA
提取码:ihwt
在这里插入图片描述

### 设置顶部导航栏的圆角样式 在 `uni-app` 中实现顶部导航栏的圆角效果,可以通过自定义样式来完成。以下是具体方法: #### 方法一:通过修改 `pages.json` 配置文件 可以在项目的配置文件 `pages.json` 中设置导航栏的样式属性。虽然默认情况下无法直接设置圆角,但可以结合 CSS 和其他方式间接实现。 ```json { "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "Demo", "navigationBarBackgroundColor": "#F8F8F8" } } ``` 需要注意的是,默认的 `navigationBarBackgroundColor` 只能设置颜色而不能控制形状[^1]。 --- #### 方法二:覆盖原生导航栏并使用自定义组件 为了实现更复杂的样式(如圆角),可以选择隐藏系统的导航栏并通过自定义组件替代它。步骤如下: 1. **隐藏系统导航栏** 修改 `pages.json` 文件中的对应页面配置项,将 `"navigationStyle"` 属性设为 `"custom"`。 ```json { "usingComponents": true, "pages": [ { "path": "pages/index/index", "style": { "navigationStyle": "custom" } } ] } ``` 2. **创建自定义导航栏组件** 创建一个新的 Vue 组件作为自定义导航栏,并在其内部设计所需的样式。例如,在该组件中添加一个带有圆角样式的容器。 ```vue <!-- components/CustomNavBar.vue --> <template> <view class="nav-bar"> <text class="title">自定义导航栏</text> </view> </template> <script> export default { name: 'CustomNavBar' }; </script> <style scoped lang="scss"> .nav-bar { height: 90rpx; background-color: var(--mk-base-color); /* 使用全局变量 */ display: flex; align-items: center; justify-content: center; border-bottom-left-radius: 20rpx; /* 左下角圆角 */ border-bottom-right-radius: 20rpx; /* 右下角圆角 */ box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.1); } .title { font-size: 36rpx; color: white; } </style> ``` 3. **引入自定义导航栏到目标页面** 将上述组件注册到需要使用的页面中。 ```html <!-- pages/index/index.vue --> <template> <view> <CustomNavBar /> <view>这里是页面内容</view> </view> </template> <script> import CustomNavBar from '@/components/CustomNavBar'; export default { components: { CustomNavBar } }; </script> ``` 这样就可以完全掌控导航栏的设计风格,包括圆角和其他复杂的效果[^3]。 --- #### 注意事项 - 如果希望在整个项目中统一管理主题色,建议将颜色声明为 SCSS 或 Less 的变量存储于 `uni.scss` 文件中。 - 自定义导航栏可能会影响用户体验的一致性,请谨慎调整其高度和交互逻辑[^2]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值