vue-吸顶效果(屏幕滚动距离)

  • 要点:
    vue中不要操作Dom来获取元素,这里用ref属性来替代Dom获取元素。
    this.$ refs.myswiper.$el :获取标签上标有属性ref='myswiper’的元素。
    this. $ refs.myswiper.$el.offsetHeight :表示该轮播swiper元素的高度
    document.documentElement.scrollTop: 表示屏幕滚动的高度。
 mounted () {
    window.onscroll = this.handScroll // 不能加(),否则会返回undefined
  },
  methods: {
    handScroll () {
      // console.log('111')
      // console.log(document.documentElement.scrollTop, this.$refs.myswiper.$el.offsetHeight)// 获取滚动距离和轮播高度
      // if(滚动距离>=轮播的高度)
      if (document.documentElement.scrollTop >= this.$refs.myswiper.$el.offsetHeight) {
        // console.log('fixed')
        this.isFixed = true
      } else {
        // console.log('unfixed')
        this.isFixed = false
      }
    }
  }
  • 主页.vue中引用组件上加类名,在组件中对该类名进行css操作
<Header :class="isFixed?'fixed':''"></Header>
.fixed{
  position: fixed;
  left:0px;
  top:0px;
  width:100%;
  height:40px;
  background:white;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值