我正在用vueJs和bootstrap创建一个webapp.我想在一个特定数量的滚动之后,对一个元素进行change CSS class,是否有一些vue方法可以做到这一点.

我想要下面这样的东西:

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

我发现的一个 Select 是使用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);
  }
  
})

还应考虑在组件被销毁 timeshift 除事件侦听器,以防止泄漏:

destroy() {
  window.removeEventListener('scroll', this.updateScroll)
}

Vue.js相关问答推荐

vuejs:在确认提示之前更改 HTML

Vue3外部数组的响应性

Vue 2 如何在全局函数中返回观察者

有没有办法将react 键作为值传递给由 v-for 创建的 v-model

使用 vue / nuxt js 切换 fontawesome 图标

Vue-tables-2(vuex)react性不起作用

在组件之间共享 websocket 连接

如何对对象数组进行 v-model

将props传递给设置时的VueJS 3组合API和TypeScript类型问题:类型上不存在属性 user用户

未捕获的错误:[vue-composition-api] 必须在使用任何函数之前调用 Vue.use(plugin)

Vue 3 如何获取有关 $children 的信息

PhpStorm 中Expected预期表达式

Nuxt & Vuetify:如何控制 CSS 文件的加载顺序?

Vue-test-utils:在单个测试中多次使用 $nextTick

Import Unexpected identifier + SyntaxError: Unexpected string

如何从 keep-alive 中销毁缓存的 Vue 组件?

克隆元素并附加到 DOM 的正确方法

laravel vuejs/axios put request Formdata 为空

用于 nuxt.js 构建的自定义 index.html

v-bind:class 的 Vue.js 计算(computed)属性