2013-10-02 2 views
0

scrollTop 위치가 800px 이상이면 이벤트를 트리거 할 수 있습니다. 우리는 모두간단한 if 문으로 창 스크롤 기능을 줄입니다.

  $(window).scroll(function() { 
      if ($(this).scrollTop() > 800) { 
      // do something 
      } 
     }); 

나는 윈도우 스크롤 기능에 묶는없이이 작업을 수행 할 수 ...이과 같이, 윈도우 스크롤 기능의 경우 문을 포장하여 수행 할 수 있습니다 알아?

이 시도했지만 작동하지 않습니다 :

좋아
  if ($(window).scrollTop() > 800) { 
      // just do it 
      } 

, 부드럽게.

+1

아니요 창을 스크롤하는 데 필요한 것이 있어야합니다. $ (window) .scroll 핸들러입니다. –

+0

'$ (window) .scroll()'은 이벤트 핸들러입니다. 이것은 이벤트가 발생할 때 발생합니다. 이 경우 "창을 스크롤 할 때이 코드를 실행하십시오"라고 말합니다. 이를 사용하지 않으면 if 문은 단 한 번만 실행되며 페이지 수명 기간에는 다시는 실행되지 않습니다. – Archer

+0

글쎄, 나는 그것이 하나의 메모리/CPU 돼지라고 읽었고, 둘째, 나는 한 번만 exec 할 것이있다. – user2777052

답변

1

당신이 뭔가 다른 것, 클릭 핸들러 등에서 그것을 호출하지 않으면 정말로 할 수 없습니다.

왜 스크롤 이벤트에 바인딩하지 않으려는 이유가 있습니까? 술 완성도를 들어

편집 :

, 여기에 단지 타임 스탬프를 사용, 다른 덜 CPU를 많이 사용하는 방법입니다.

var dt = new Date(); 
$(window).scroll(function(){ 
    var now = new Date(); 
    if(now - dt < 1000) return; //1000 === 1 second 
    //do stuff 
    dt = now; 
}); 
관련 문제