代码之家  ›  专栏  ›  技术社区  ›  Michael Lumbroso

jQuery中是否有垂直滚动事件

  •  10
  • Michael Lumbroso  · 技术社区  · 15 年前

    scroll() 事件,但事实是,我希望该功能只在垂直滚动的情况下触发(我也有一些水平滚动)。

    我在jQuery的文档中没有看到这种可能性,有没有什么技巧可以做到这一点?

    3 回复  |  直到 9 年前
        1
  •  11
  •   Ricardo Anjos    10 年前

    没有特定的事件,但您可以测试 .scrollLeft() 定位以查看它是否已从以前存储的位置移动。

    var prevLeft = 0;
    $(document).scroll( function(evt) {
        var currentLeft = $(this).scrollLeft();
        if(prevLeft != currentLeft) {
            prevLeft = currentLeft;
            console.log("I scrolled horizontally.");
        }
    });
    
        2
  •  5
  •   asulaiman    10 年前

    你也可以使用 .scrollTop 创建自定义垂直滚动事件。

    var prevTop = 0;
    $(document).scroll( function(evt) {
        var currentTop = $(this).scrollTop();
        if(prevTop !== currentTop) {
            prevTop = currentTop;
            console.log("I scrolled vertically.");
        }
    });
    

    Jquery .scrollTop()

        3
  •  0
  •   JSK NS harvey    12 年前

    这应该起作用:

    var prevLeft = 0;
    $(document).scroll( function(evt) {
        var currentLeft = $(this).scrollLeft();
        if(prevLeft === currentLeft) {
            console.log("I scrolled vertically.");
        } 
        else {
            prevLeft = currentLeft;
        }
    });