我正在使用vueJs和bootstrap创建一个webapp。我想在特定数量的滚动之后change CSS class一个元素,是否有一些可行的方法呢?

我想要以下内容:

<div :class="{classA: scrollPosition < 100, classB: scrollPosition > 100}">
</div>

我发现的一种选择是使用vue-scroll,这似乎很有希望,但使用not working

还有其他一些本机的方法可以达到相同的效果吗?

最佳答案

您可以尝试使它像这样

const app = new Vue({

  el: '#app',

  data: {
    scrollPosition: null
  },

  methods: {
    updateScroll() {
      this.scrollPosition = window.scrollY
    }
  },

  mounted() {
    window.addEventListener('scroll', this.updateScroll);
  }

})
您还应该考虑在销毁组件时删除事件侦听器,以防止泄漏:
destroy() {
  window.removeEventListener('scroll', this.updateScroll)
}

08-19 10:11