vue事件监听导航滚动位置,显示不同的内容

业务是固定导航吸顶显示,到指定位置背景改为白色。

 从上面的情况改变为下面的情况。

 废话不多说直接上代码。(html、css就不放了)

在这里,我并列写了两个导航用v-show来控制显示。

<div class="part1" id="part1" v-show="showNav">
      <div class="top">
        <div class="left">
          <div class="logo">
            <img src="@/assets/images/logo.png" alt>
          </div>
          <div class="list">
            <slot></slot>
          </div>
        </div>
        <div class="right">
          <div class="right_button1">申请使用</div>
          <div class="right_button2">登录</div>
        </div>
      </div>
    </div>
    <div class="part2" id="part2" v-show="!showNav">
      <div class="top">
        <div class="left">
          <div class="logo">
            <img src="@/assets/images/logo.png" alt>
          </div>
          <div class="list">
            <slot></slot>
          </div>
        </div>
        <div class="right">
          <div class="right_button1">申请使用</div>
          <div class="right_button2">登录</div>
        </div>
      </div>
    </div>

js部分:

export default {
  data() {
    return {
      showNav: true
    }
  },
  mounted() {
    // 事件监听滚动条
    window.addEventListener('scroll', this.watchScroll)
  },
  methods: {
    watchScroll() {
      var scrollTop =
        window.pageYOffset ||
        document.documentElement.scrollTop ||
        document.body.scrollTop
      //  当滚动超过 450 时,实现吸顶效果
      if (scrollTop > 450) {
        this.showNav = false
      } else {
        this.showNav = true
      }
    }
  },
  destroyed() {
    //离开这个界面之后,删除滚动事件,不然容易除bug
    window.removeEventListener('scroll', this.watchScroll)
  }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值