如何在用户滚动时运行函数

时间:2011-06-13 15:42:57

标签: javascript jquery scroll

  

可能重复:
  How can I determine the direction of a jQuery scroll event?

我需要一个函数来检测我是否在Javascript / jquery中向上或向下滚动以触发某些事件。

像这样:

if(ScrollTop)
  {
    alert('SCROLL TOP');    
  }
else if(ScrollDown)
  {
    alert('SCROLL DOWN');  
  }

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:1)

这是在所有浏览器中运行的简单解决方案:jQuery。

以下是解决方案: http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Jquery/Q_25533492.html

<html>
<head>
  <style>
  div { color:blue; }
  p { color:green; }
  span { color:red; display:none; }
  </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
        <div>Try scrolling the iframe.</div>
  <p>Paragraph - <span>Scroll happened!</span></p>
<script>
    $("p").clone().appendTo(document.body);
    $("p").clone().appendTo(document.body);
    $("p").clone().appendTo(document.body);

    var lastScrollTop = 0
    var currentScrollTop = 0
    $(window).scroll(function (event) { 
        lastScrollTop = currentScrollTop
        currentScrollTop = $(document).scrollTop()
        if (currentScrollTop > lastScrollTop) 
            $("span").text("going down")            
        else
            $("span").text("going up")
         $("span").css("display", "inline").fadeOut("slow"); 

    });
</script>
</body>
</html>

基本上它只是检测当前的滚动位置。

答案 2 :(得分:1)

像这样http://jsfiddle.net/SjFNq/

$(window).scroll(function(){
    var prevTop = $(window).data("top");
    var  newTop = $(this).scrollTop();
    if(prevTop)
    {
      if(prevTop>newTop )
      {
        alert("top");
      }
    else{
      alert("bottom");
       }
    }
    $(window).data("top",newTop );

});