可能重复:
How can I determine the direction of a jQuery scroll event?
我需要一个函数来检测我是否在Javascript / jquery中向上或向下滚动以触发某些事件。
像这样:
if(ScrollTop)
{
alert('SCROLL TOP');
}
else if(ScrollDown)
{
alert('SCROLL DOWN');
}
答案 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)
$(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 );
});