2012-04-22 3 views
0

이 작은 스 니펫을 사용하여 창을 페이지의 맨 위로 스크롤했습니다. scrollup div의 창 스크롤 한 후 페이드 아웃 할 때 JQuery 스톱 요소가 다시 페이딩되지 않음

$(window).scroll(function(){ 
     $("#scrollup").fadeIn("slow"); 
    }); 
    $("#scrollup").click(function(){ 
     $('html, body').animate({ scrollTop: 0 }, 'normal', function() { 
      $("#scrollup").fadeOut("slow"); 
     }); 
    }); 

그러나, 그것은 다시 사라져요. 어떻게이 일어나는 중지합니까? 감사.


는 내가 합리적인 솔루션

$(window).scroll(function(){ 
    if ($(this).scrollTop() > 100) { 
     $('.scrollup').fadeIn(); 
    } else { 
     $('.scrollup').fadeOut(); 
    } 
}); 

이 내 원래의 코드를 변경하는 것보다 쉬울 것을 발견 한 것 같아?

답변

1

체크 아웃 .stop() : http://api.jquery.com/stop/

$(window).scroll(function(){ 
    if ($(this).scrollTop() > 100) { 
     $('.scrollup').stop().fadeIn(); 
    } else { 
     $('.scrollup').stop().fadeOut(); 
    } 
}); 
+0

덕분에,이 기본이다 동맹국 내가 지금 사용하고있는 것, stop()의 장점은 무엇입니까? – Harry

+0

내가 제공 한 링크를 읽으십시오. – iambriansreed

1

당신은 상단 또는 이미 (표시)에 어두운 경우 경우 확인하는 if 문

$(window).scroll(function(){ 
    if ($(window).scrollTop() !== 0 or $("#scrollup").is(":hidden")) then { 
     $("#scrollup").fadeIn("slow"); 
    } 
}); 
1

당신은 단지를 추가 할 때 scrollup의 사업부가 퇴색되지 않았는지 확인한다 그것은 상단에 :

$(window).scroll(function(){ 
    if($("body").scrollTop()!=0) 
     $("#scrollup").fadeIn("slow"); 
    }); 
    $("#scrollup").click(function(){ 
     $('html, body').animate({ scrollTop: 0 }, 'normal', function() { 
      $("#scrollup").fadeOut("slow"); 
     }); 
    });​ 
관련 문제