原文转载来自:https://www.frbkw.com/1889/
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可编译到iOS、Android、H5、以及各种小程序等多个平台。即使不跨端,uni-app同时也是更好的小程序开发框架。相比下使用uni-app去开发app质量相对于mui来说会好太多。在某项目中有一个导航栏有选择城市以及收索框,很明显这是能使用自定义菜单了,菜单下方是轮播图。初始菜单是透明的,往下滑动的时候菜单会由透明变成蓝色。看下某项目效果图:
1.首先建立一个新的项目名称随意
2.配置界面在pages.json文件下删除自带的原生导航[Asm] 纯文本查看 复制代码 {
"path" : "pages/lq-index/lq-index",
"style" : {}
} 在文件下面一点得找到navigationStyle值改为custom[Asm] 纯文本查看 复制代码 "globalStyle" : {
"navigationStyle" : "custom",
"navigationBarTextStyle" : "black",
"navigationBarTitleText" : "uni-app",
"navigationBarBackgroundColor" : "#FFFFFF",
"backgroundColor" : "#FFFFFF"
}, (额外知识点,原生导航给关闭后在其他界面想开启怎么办?在page,style中在开启即可)[Asm] 纯文本查看 复制代码 {
"path" : "pages/lq-eserve/lq-eserve",
"style" : {
"navigationStyle" :"default",
"navigationBarTitleText" : "在线预定",
"navigationBarBackgroundColor":"#30A2FC",
"navigationBarTextStyle":"white"
}
} 复制官方dome中的common目录到自己项目随后在app.vue中引导样式文件,好像新建工程没有引入uni.css[Asm] 纯文本查看 复制代码 <style lang="scss">
[url=home.php?mod=space&uid=476974]@import[/url] url("common/uni.css");
/*每个页面公共css */
</style>
3.引入菜单在官方演示dome中可以找到插件(/pages/extUI/nav-bar/nav-bar)复制官方dome的components目录下uni-nav-bar.vue,uni-status-bar以及uni-icon.vue文件到自己项目中的components目录(没有的话就新建)引入组件(直接全部复制/pages/extUI/nav-bar/nav-bar)到首页里面,如果报错一般都是路径问题在家在重新配置下 4.滑动颜色渐变首先固定菜单栏在顶部,在uni-nav-bar这行中fixed值修改为false,即可固定在顶部,便添加一个样式文件:style=”navbg”[Asm] 纯文本查看 复制代码 <!-- 自定义菜单 -->
<uni-nav-bar color="#333333" background-color="rgba(255, 255, 255, 0);" fixed="true" right-icon="scan" @click-left="showCity"
@click-right="scan" :style="navbg">
<block slot="left">
<view class="city">
<text>{{city}}</text>
<uni-icon type="arrowdown" color="#333333" size="22"></uni-icon>
</view>
</block>
<view class="input-view">
<uni-icon type="search" size="22" color="#666666"></uni-icon>
<input confirm-type="search" @confirm="confirm" class="input" type="text" placeholder="输入搜索关键词" />
</view>
</uni-nav-bar> return中添加[Asm] 纯文本查看 复制代码 navbg:{
background:'#ffffff00',
} 以及添加是事件,得在 data()外面[Asm] 纯文本查看 复制代码 //事件监听滚动条
mounted() {
window.addEventListener('scroll', this.handleScroll)
}, methods:[Asm] 纯文本查看 复制代码 //获取导航到顶部的距离
handleScroll() {
var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
// console.log(scrollTop)
if(scrollTop <= 150){
this.navbg.background = "#ffffff00"
}else{
this.navbg.background = "#30A2FC",
this.navbg.color = "#fff"
}
},
相关源码下载:链接: https://pan.baidu.com/s/1TNHDP08BKKGwkkMMmUw36g 提取码: 27cv |