vue中监听页面滚动,给吸顶头部加不同的样式

背景:当页面过长的时候,会出现下拉滚动的情况,头部也被滚动过去了,这时候头部需要吸顶,有的页面头部一开始是一个颜色,滑动的时候是另外一个颜色,这时候要怎么做呢?
1.首先写头部吸顶的样式html部分为:

 <div class="declaration-data" @scroll="handleScroll($event)">
    <div class="declaration-header" :class="nav? 'nav-bg':'nav_nobg'" ref="decl-header">
      <div class="return-left">
        <base-icon
          @click="$router.back(-1)"
          icon-class="arrow-left-s-line"
          style="font-size: 20px;"
        ></base-icon>
        <span style="cursor: pointer" @click="$router.back(-1)">返回</span>
      </div>
      <div align="center" class="declaration-title">餐饮行业主题分析报告</div>
      <div align="center" class="declaration-info">2021年11月</div>
    </div>
</div>

css部分为:

.declaration-header {
    // padding: 20px $paddingHorizontal 20px;
    padding-top: 20px;
    padding-bottom: 15px;
    color: #fff;
    position: fixed;
    width: 100%;
    left: 0;
    top: 0;
    z-index: 1;

    .declaration-title {
      margin-bottom: 8px;
      font-size: 20px;
    }

    .declaration-info {
      font-size: 12px;
    }
    .return-left {
      display: flex;
      // align-items: center;
      padding-left: 15px;
    }
  }
  .nav-bg {
    background: #5174fa;
  }
  .nav_nobg {
    background: none;
  }

js部分代码为:

//滚动事件
const handleScroll = (event) => {
  //获取导航到顶部的距离
  let scrollTop =event.srcElement.scrollTop;
  console.log(scrollTop);
  if (scrollTop == 0) {
    nav.value = false;
  } else {
    nav.value = true;
  }
};
const nav = ref(false);

原理:当滚动的时候,在事件里给定义好的变量赋予不同的值,页面上根据不同的值判断赋予不同的样式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值