在jQuery中检测滚动方向和位置

  • 源码大小:12.36KB
  • 所需积分:1积分
  • 源码编号:19JP-3702
  • 浏览次数:746次
  • 最后更新:2023年07月12日
  • 所属栏目:其他
本站默认解压密码:19jp.com 或 19jp_com

简介

scrollDetection是一个很小的jQuery插件,它可以检测滚动方向(上下)和滚动位置,并相应地将CSS类添加到特定的指示符元素中。

参见:

  • 使用jQuery实现最小滚动方向检测-滚动检测
  • 使用jQuery检测滚动方向-滚动方向

如何使用它:

1.插入主脚本jquery.scroll-direction.js查询加载jQuery库之后,我们就可以开始了。请注意,从v2.0开始,jQuery现在是可选的。

  1. <script src="/path/to/cdn/jquery.slim.min.js"></script>
  2. <script src="/path/to/jquery.scroll-direction.js"></script>

2.初始化插件以激活滚动方向和位置跟踪器。

  1. // jQuery
  2. $.scrollDirection.init({
  3. // options here
  4. })
  5.  
  6. // Vanilla JS
  7. window.scrollDirection.init({
  8. // options here
  9. });

3.确定跟踪时是否考虑顶部和底部偏移。

  1. $.scrollDirection.init({
  2. // top offset in px
  3. topOffset: 0,
  4. // bottom offset in px
  5. bottomOffset: 0,
  6. // consider bottom as middle
  7. atBottomIsAtMiddle: true
  8. })

4.在滚动时将自定义CSS类添加到指示符元素(默认值:body)。

  1. $.scrollDirection.init({
  2. indicator: true,
  3. indicatorElement: $("body"),
  4. scrollUpClass: "scroll-up",
  5. scrollDownClass: "scroll-down",
  6. scrollAtTopClass: "scroll-top",
  7. scrollAtMiddleClass: "scroll-middle",
  8. scrollAtBottomClass: "scroll-bottom",
  9. })

5.当滚动经过一个额外的指示符元素时,将自定义CSS类添加到该元素。

  1. $.scrollDirection.init({
  2. extraIndicators: {
  3. "element": $("#extra-element"),
  4. "class": "custom-class",
  5. }
  6.  
  7. })

6.将根据当前滚动方向和位置触发的可用事件。

  1. $(window).on("scrollDirection", function () {
  2. // on load, resize, or scroll
  3. });
  4.  
  5. $(window).on("scrollUp", function () {
  6. // on scroll up
  7. });
  8.  
  9. $(window).on("scrollDown", function () {
  10. // on scroll down
  11. });
  12.  
  13. $(window).on("scrollAtTop", function () {
  14. // when reaching the top
  15. });
  16.  
  17. $(window).on("scrollAtMiddle", function () {
  18. // when reaching the middle zone
  19. });
  20.  
  21. $(window).on("scrollAtBottom", function () {
  22. // when reaching the bottom
  23. });

7.可用属性。

  1. if($.scrollDirection.isScrollUp){
  2. // is scrolling up
  3. }
  4.  
  5. if($.scrollDirection.isScrollDown){
  6. // is scrolling down
  7. }
  8.  
  9. if($.scrollDirection.isScrollAtTop){
  10. // is reaching the top
  11. }
  12.  
  13. if($.scrollDirection.isScrollAtMiddle){
  14. // is reaching the middle zone
  15. }
  16.  
  17. if($.scrollDirection.isScrollAtBottom){
  18. // is reaching the bottom
  19. }

更新日志:

v2.0.0版本(2022-02-15)

  • 添加jQuery免费功能。
  • 添加缩小版

预览截图