【问题标题】:vue.js(2) window.scrollY always return 0vue.js(2) window.scrollY 总是返回 0
【发布时间】:2021-03-13 06:27:55
【问题描述】:

我有一些关于 vuejs 和路由器的问题..

  1. window.addEventListener('scroll', ...) 在我的组件中也未检测到。
  2. 当我在 console.log 中键入“window.scrollY”时。它总是会返回 0 给我。
  3. 右滚动(Y)可用且window.innerHeight不等于0
  4. 我无法检测到客户端何时将滚动条移至底部
  5. 我用vuestic和vue-router 谢谢
  created () {
    // Not working because window.scrollY always return 0
    window.addEventListener('scroll', this.handleScroll);
  },
  methods: {
    handleScroll (event) {}
  }

【问题讨论】:

标签: javascript vue.js vue-router vuestic-admin


【解决方案1】:

您可以尝试监听子元素的滚动。

并使用 getBoundClientRect:

<template>
  <div id="app">
    <nav>navbar</nav>
    <main id="listen">main</main>
  </div>
</template>

<script>
export default {
  name: "App",
  created() {
    document.addEventListener("scroll", this.listenScroll);
  },
  destroyed() { // remember to remove the listener when destroy the components
    document.removeEventListener("scroll", this.listenScroll);
  },
  methods: {
    listenScroll() {
      let myScroll = document.querySelector("#listen").getBoundingClientRect()
        .top;
      console.log(myScroll);
    },
  },
};
</script>

<style>
nav {
  height: 100px;
}
main {
  height: 700px;
}
</style>

这里有一个代码框https://codesandbox.io/s/great-hill-x3wb1?file=/src/App.vue:0-560

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-27
    • 2014-03-20
    • 2013-04-13
    • 2013-03-30
    • 2016-07-13
    • 2023-04-09
    • 2021-10-27
    • 1970-01-01
    相关资源
    最近更新 更多