uniapp自定义导航栏固定顶部,滚动时样式变化

本文介绍了如何在HTML和JavaScript中使用UView组件库的navbar组件创建一个带有颜色渐变效果的自定义导航栏,通过滚动事件实时改变导航栏背景、标题和图标颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义导航栏使用uview组件库的navbar组件:

html:

<u-navbar title="标题" class="navBox" :background="navStyleInfo.navBarBg" 
:border-bottom="false" :back-icon-color="navStyleInfo.backIconColor" 
:title-color="navStyleInfo.titleColor" :is-fixed="true">
</u-navbar>

js:

data() {
 return {
        currentPageName: '',
        navStyleInfo:{
          navBarBg: {
            backgroundColor: "rgba(255, 255, 255,0)",
          },
          titleColor:"rgba(255, 255, 255,255)",
          backIconColor:"rgba(255, 255, 255,255)"
        }
      }
  },
onPageScroll : function(e) { 
     this.changeNavBarBg(e.scrollTop);
},
methods: {
      changeNavBarBg(scrollY){
        let num = 0.00625*scrollY;
        if(num > 1){
          num = 1
        }else{
          num = num.toFixed(2)
        }
        if(scrollY>=80){
          this.navStyleInfo={
            navBarBg:{
              background:'rgba(255, 255, 255,' + num +')',
            },
            titleColor:'rgba(51, 51, 51,' + num +')',
            scanIconColor:'rgba(41,121, 255,' + num +')',
            backIconColor:'rgba(51, 51, 51,' + num +')',
          }
        }
        else{
          let toTopNum =  0.0125*(80-scrollY);
          if(toTopNum<0.2)toTopNum = 0.2;
          this.navStyleInfo={
            navBarBg:{
              background:'rgba(255, 255, 255,' + num +')',
            },
            titleColor:'rgba(255, 255, 255,' + toTopNum +')',
            scanIconColor:'rgba(255,255, 255,' + toTopNum +')',
            backIconColor:'rgba(255, 255, 255,' + toTopNum +')',
          }
        }
      }},
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值