学习这个组件主要是用于多端开发,主要还是比较美观养眼,男人总是只爱美的,一直不变QAQ。
下载源码解压,复制根目录的 /colorui 文件夹到你的根目录
App.vue 引入关键Css main.css icon.css
<style>@import "colorui/main.css";@import "colorui/icon.css";@import "app.css"; /* 你的项目css */....</style>
导航栏作为常用组件有做简单封装,当然你也可以直接复制代码结构自己修改,达到个性化目的。
App.vue 获得系统信息
onLaunch: function() {uni.getSystemInfo({success: function(e) {// #ifndef MPVue.prototype.StatusBar = e.statusBarHeight;if (e.platform == 'android') {Vue.prototype.CustomBar = e.statusBarHeight + 50;} else {Vue.prototype.CustomBar = e.statusBarHeight + 45;};// #endif// #ifdef MP-WEIXINVue.prototype.StatusBar = e.statusBarHeight;let custom = wx.getMenuButtonBoundingClientRect();Vue.prototype.Custom = custom;Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight;// #endif// #ifdef MP-ALIPAYVue.prototype.StatusBar = e.statusBarHeight;Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight;// #endif}})},
pages.json 配置取消系统导航栏
"globalStyle": {"navigationStyle": "custom"},
复制代码结构可以直接使用,注意全局变量的获取。
使用封装,在main.js 引入 cu-custom 组件。
import cuCustom from './colorui/components/cu-custom.vue'Vue.component('cu-custom',cuCustom)
page.vue 页面可以直接调用了
<cu-custom bgColor="bg-gradual-blue" :isBack="true"><block slot="backText">返回</block><block slot="content">导航栏</block></cu-custom>
| 参数 | 作用 | 类型 | 默认值 |
|---|---|---|---|
| bgColor | 背景颜色类名 | String | ‘’ |
| isBack | 是否开启返回 | Boolean | false |
| bgImage | 背景图片路径 | String | ‘’ |
| slot块 | 作用 |
|---|---|
| backText | 返回时的文字 |
| content | 中间区域 |
| right | 右侧区域(小程序端可使用范围很窄!) |
做到这里是不是感觉自己的导航栏和官方给的效果不一样,没错我实例一下,照着cv就出现错误了,检查发现问题出在全局样式设置上App.vue,下面是整个样式文件代码,建议直接全复制,方便一点,试过已经可以完美解决。
<script>import Vue from 'vue'export default {onLaunch: function() {uni.getSystemInfo({success: function(e) {// #ifndef MPVue.prototype.StatusBar = e.statusBarHeight;if (e.platform == 'android') {Vue.prototype.CustomBar = e.statusBarHeight + 50;} else {Vue.prototype.CustomBar = e.statusBarHeight + 45;};// #endif// #ifdef MP-WEIXINVue.prototype.StatusBar = e.statusBarHeight;let custom = wx.getMenuButtonBoundingClientRect();Vue.prototype.Custom = custom;Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight;// #endif// #ifdef MP-ALIPAYVue.prototype.StatusBar = e.statusBarHeight;Vue.prototype.CustomBar = e.statusBarHeight + e.titleBarHeight;// #endif}})Vue.prototype.ColorList = [{title: '嫣红',name: 'red',color: '#e54d42'},{title: '桔橙',name: 'orange',color: '#f37b1d'},{title: '明黄',name: 'yellow',color: '#fbbd08'},{title: '橄榄',name: 'olive',color: '#8dc63f'},{title: '森绿',name: 'green',color: '#39b54a'},{title: '天青',name: 'cyan',color: '#1cbbb4'},{title: '海蓝',name: 'blue',color: '#0081ff'},{title: '姹紫',name: 'purple',color: '#6739b6'},{title: '木槿',name: 'mauve',color: '#9c26b0'},{title: '桃粉',name: 'pink',color: '#e03997'},{title: '棕褐',name: 'brown',color: '#a5673f'},{title: '玄灰',name: 'grey',color: '#8799a3'},{title: '草灰',name: 'gray',color: '#aaaaaa'},{title: '墨黑',name: 'black',color: '#333333'},{title: '雅白',name: 'white',color: '#ffffff'},]},onShow: function() {console.log('App Show')},onHide: function() {console.log('App Hide')}}</script><style>@import "colorui/main.css";@import "colorui/icon.css";.nav-list {display: flex;flex-wrap: wrap;padding: 0px 40upx 0px;justify-content: space-between;}.nav-li {padding: 30upx;border-radius: 12upx;width: 45%;margin: 0 2.5% 40upx;background-image: url(https://cdn.nlark.com/yuque/0/2019/png/280374/1552996358352-assets/web-upload/cc3b1807-c684-4b83-8f80-80e5b8a6b975.png);background-size: cover;background-position: center;position: relative;z-index: 1;}.nav-li::after {content: "";position: absolute;z-index: -1;background-color: inherit;width: 100%;height: 100%;left: 0;bottom: -10%;border-radius: 10upx;opacity: 0.2;transform: scale(0.9, 0.9);}.nav-li.cur {color: #fff;background: rgb(94, 185, 94);box-shadow: 4upx 4upx 6upx rgba(94, 185, 94, 0.4);}.nav-title {font-size: 32upx;font-weight: 300;}.nav-title::first-letter {font-size: 40upx;margin-right: 4upx;}.nav-name {font-size: 28upx;text-transform: Capitalize;margin-top: 20upx;position: relative;}.nav-name::before {content: "";position: absolute;display: block;width: 40upx;height: 6upx;background: #fff;bottom: 0;right: 0;opacity: 0.5;}.nav-name::after {content: "";position: absolute;display: block;width: 100upx;height: 1px;background: #fff;bottom: 0;right: 40upx;opacity: 0.3;}.nav-name::first-letter {font-weight: bold;font-size: 36upx;margin-right: 1px;}.nav-li text {position: absolute;right: 30upx;top: 30upx;font-size: 52upx;width: 60upx;height: 60upx;text-align: center;line-height: 60upx;}.text-light {font-weight: 300;}@keyframes show {0% {transform: translateY(-50px);}60% {transform: translateY(40upx);}100% {transform: translateY(0px);}}@-webkit-keyframes show {0% {transform: translateY(-50px);}60% {transform: translateY(40upx);}100% {transform: translateY(0px);}}</style>

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号