2012-10-15 3 views
1

나는 간단한 질문을하고있다. 그러나 나는 그것을 알아낼 수 없다. 사용자가 scrollTop을 스크롤 할 때마다 변경됩니다. scrollTop의 새 값에서 낡은 것을 뺍니다. 하지만 이전 값을 저장하는 방법, 그래서 사용자가 스크롤을 중지 한 후 새 값을 뺄 수 있습니까? 쉬운 길이 있어야합니다.jQuery/Javascript - 새로운 스크롤 탑에서 오래된 스크롤 탑을 빼는 방법

$(function(){ 
    $(window).scroll(function(){ 
     var curTop = $(window).scrollTop(); 
     var newTop = (curTop - curTop); 
     console.log(newTop); 
    }); 
}); 

이것은 분명히 작동하지 않습니다. 너희들 생각 나니?

+0

** 스크롤 이벤트가 ** 발생할 때마다 ** 해당 함수를 호출하고 싶지 않을 것입니다. 나는 당신의 위치에있는 모든 작은 증감에 대해 발사 할 것이라고 믿습니다. –

+2

정확히 달성하려는 것은 무엇입니까? – Justin

+0

[if (oldTop-curTop == 0) {경고 ('stoppped scrolling');}?] (http://jsfiddle.net/xCpH4/) :) – Stano

답변

0

전역 범위에서 함수의 범위 밖에있는 oldScrollTop을 정의하고 함수를 호출 할 때마다 데이터로 계산 한 후이를 업데이트하십시오.

이렇게하면 "이전"값은 전역 범위에서 한 함수 호출에서 다른 함수 호출로 저장됩니다. 글로벌 범위, 나는 심지어 jQuery의 document.ready 이외의 모든 함수 호출 이외의 의미

0

이 작동합니다 :

$(function(){ 
    var curTop = $(window).scrollTop(); 
    $(window).scroll(function(){ 
     var newTop = $(window).scrollTop(); 
     var diff = newTop - curTop; 
     curTop = newTop; 
     console.log(diff); 
    }); 
}); 

을가 이후 모든 스크롤 이벤트를 현재 curTop에서 scrollTop 및 업데이트를 저장 이전 스크롤바와 새 스크롤 탑의 차이가 계산됩니다.