fengrui99 发表于 2019-8-6 08:54

【转】uni-app 自定义导航菜单结合轮播滑动变色

原文转载来自:https://www.frbkw.com/1889/

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可编译到iOS、Android、H5、以及各种小程序等多个平台。即使不跨端,uni-app同时也是更好的小程序开发框架。相比下使用uni-app去开发app质量相对于mui来说会好太多。在某项目中有一个导航栏有选择城市以及收索框,很明显这是能使用自定义菜单了,菜单下方是轮播图。初始菜单是透明的,往下滑动的时候菜单会由透明变成蓝色。看下某项目效果图:




1.首先建立一个新的项目名称随意


2.配置界面在pages.json文件下删除自带的原生导航{
      "path" : "pages/lq-index/lq-index",
        "style" : {}
                }在文件下面一点得找到navigationStyle值改为custom "globalStyle" : {
      "navigationStyle" : "custom",
      "navigationBarTextStyle" : "black",
      "navigationBarTitleText" : "uni-app",
      "navigationBarBackgroundColor" : "#FFFFFF",
      "backgroundColor" : "#FFFFFF"
    },(额外知识点,原生导航给关闭后在其他界面想开启怎么办?在page,style中在开启即可){
                  "path" : "pages/lq-eserve/lq-eserve",
                  "style" : {
                                "navigationStyle" :"default",
                        "navigationBarTitleText" : "在线预定",
                                "navigationBarBackgroundColor":"#30A2FC",
                                "navigationBarTextStyle":"white"
                  }
                }复制官方dome中的common目录到自己项目随后在app.vue中引导样式文件,好像新建工程没有引入uni.css<style lang="scss">
        @import 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”<!-- 自定义菜单 -->
                <uni-nav-barcolor="#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中添加navbg:{
                                        background:'#ffffff00',
                                }以及添加是事件,得在 data()外面//事件监听滚动条
                mounted() {
                  window.addEventListener('scroll', this.handleScroll)
                },methods://获取导航到顶部的距离
                        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

zyy22664488 发表于 2019-8-6 09:34

感谢分享

klren0312 发表于 2019-8-6 22:08

666 居然不放github... 搞个网盘好low

fengrui99 发表于 2019-8-6 22:49

klren0312 发表于 2019-8-6 22:08
666 居然不放github... 搞个网盘好low

等我哪天头发掉光了 我就去github:Dweeqw
页: [1]
查看完整版本: 【转】uni-app 自定义导航菜单结合轮播滑动变色