• vue navbar tabbar导航条根据位置移动实现定位、颜色过渡动画效果


    ⭐️⭐️⭐️  作者:船长在船上
    🚩🚩🚩  主页:来访地址船长在船上的博客
    🔨🔨🔨  简介:资深前端开发工程师,专注前端开发,欢迎咨询交流,共同学习

    🔔🔔🔔   感谢:如果觉得博主的文章不错或者对你的工作有帮助或者解决了你的问题,可以关注、支持一下博主,如果三连收藏支持就会更好,在这里博主不胜感激!!!如有疑问可以留言、评论,看到后会及时回复。  

    vant文档:Vant 2 - Mobile UI Components built on Vue

    实现效果: 

     

    代码实现:

    1.navbar、tabbar顶部导航过渡效果、颜色过渡;

    1. <div class="mallHead">
    2. <van-nav-bar :title="titleName" fixed @click-left="onClickLeft" :style="style" safe-area-inset-top>
    3. <template #left>
    4. <van-icon name="arrow-left" size="22px" color="#024EE0" />
    5. template>
    6. van-nav-bar>
    7. <div class="top">div>
    8. div>
    1. <div :class="indexTop>220?'menuActive':'dropdown-menu'" >
    2. <van-dropdown-menu>
    3. <van-dropdown-item v-model="amountValue" :options="amountOption" />
    4. <van-dropdown-item v-model="integralValue" :options="integralOption" />
    5. <van-dropdown-item v-model="goodsValue" :options="goodsOption" />
    6. van-dropdown-menu>
    7. div>

    css样式 

    .mallHead ::v-deep.van-nav-bar{
      background: none;
      .van-icon-arrow-left{
        color:#fff !important;
      }
      .van-nav-bar__title{
        color:#fff;
      }
    }
    .mallHead ::v-deep.van-nav-bar::after{
      border: 0;
    }

    .menuActive{
      box-shadow: none;
      background:#fff;
      width: 100%;
      position: fixed;
      top: 92px;
      left: 0;
      z-index: 1;
    }

     2.定义data

    1. data(){
    2. return {
    3. style:null,
    4. indexTop:0,// 滚动条高度
    5. amountValue:0,
    6. amountOption:[
    7. { text: '兑换量从高到底', value: 0 },
    8. { text: '积分从低到高', value: 1 },
    9. { text: '积分从高到低', value: 2 },
    10. ],
    11. .......
    12. }
    13. }

    3.methods方法定义 

    1. mounted(){
    2. window.addEventListener('scroll', this.handleScroll,true);
    3. },
    4. destroyed() {
    5. window.removeEventListener('scroll', this.handleScroll);
    6. },

    定义handleScroll方法

    Math.abs(Math.round(this.indexTop)) / 100; 自行定义

    1. handleScroll(){
    2. this.indexTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; // 计算出移动位置
    3. const opacity = Math.abs(Math.round(this.indexTop)) / 100; // 根据位置移动动态设置背景透明度
    4. this.style = { background: `rgba(253,85,39,${opacity})`};
    5. }

     👉👉👉  欢迎来访船长在船上的博客,如有疑问可以留言、评论,看到后会及时回复。      

  • 相关阅读:
    elk下载地址
    【HDLBits 刷题】Circuits(1)Combinational Logic
    k8s ingress高级用法一
    antd a-list 添加分页
    第三届阿里云磐久智维算法大赛——GRU BaseLine
    SQL数据库的基本操作流程
    计算机网络自学笔记007_Real(传输层)
    Gin框架中的Cookie怎么搞(会话控制)
    Prometheus+Consul 自助服务发现
    Win 7 VPN拨号错误734.
  • 原文地址:https://blog.csdn.net/SmartJunTao/article/details/126417823