0
100
当前位置:   article > 正文

vue 监听滚动条行为 | 判断滚动条是向上滚动还是向下滚动_vue 判断滚动条滚动方向

vue 判断滚动条滚动方向

实现思路

 记录当前滚动条与文档顶部间的距离,将滚动后滚动条与文档顶部间的距离与滚动前滚动条与文档顶部间的距离做比较,若距离变大,则是向下滚,若距离变小,则是向上滚

完整范例代码

  1. <template>
  2. <div>
  3. <div class="box100">0</div>
  4. <div class="box100">100</div>
  5. <div class="box100">200</div>
  6. <div class="box100">300</div>
  7. <div class="box100">400</div>
  8. <div class="box100">500</div>
  9. <div class="box100">600</div>
  10. <div class="box100">700</div>
  11. <div class="box100">800</div>
  12. <div class="box100">900</div>
  13. <div class="box100">1000</div>
  14. </div>
  15. </template>
  16. <script>
  17. export default {
  18. data() {
  19. return {
  20. // 滚动前,滚动条距文档顶部的距离
  21. oldScrollTop: 0,
  22. }
  23. },
  24. mounted() {
  25. // 监听页面滚动事件
  26. window.addEventListener("scroll", this.scrolling)
  27. },
  28. methods: {
  29. scrolling() {
  30. // 滚动条距文档顶部的距离
  31. let scrollTop = window.pageYOffset || document.documentElement.scrollTop ||
  32. document.body.scrollTop
  33. // 滚动条滚动的距离
  34. let scrollStep = scrollTop - this.oldScrollTop;
  35. // 更新——滚动前,滚动条距文档顶部的距离
  36. this.oldScrollTop = scrollTop;
  37. if (scrollStep < 0) {
  38. alert("滚动条向上滚动了!")
  39. } else {
  40. alert("滚动条向下滚动了!")
  41. }
  42. }
  43. }
  44. }
  45. </script>
  46. <style scoped>
  47. .box100 {
  48. height: 100px;
  49. background: #3a8ee6;
  50. border: 1px solid black;
  51. }
  52. </style>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/325765
推荐阅读