여기에 example입니다. 아래로 스크롤하면 탐색 막대가 애니메이션으로 표시됩니다. 상단으로 다시 스크롤하면 애니메이션이 다시 생겨납니다. 불행히도, 이것은 매우 느리게 발생합니다. 이것은 스크롤 할 때마다 좌표를 확인하고 계산해야한다는 사실과 관련이 있습니다. 즉
, 나는이 코드를보다 효율적으로 할 수있는 방법을 찾고 있어요 : 여기$(window).scroll(function(){
var supra = $("div#supra-top-wrap"),
topWrap = supra.children("div#top-wrap"),
subNav = supra.children("nav#sub-nav");
if ($(window).scrollTop() > 0){
topWrap.animate({"top":"-38px"}, 400);
subNav.animate({"top":"-70px"}, 400);
}
else {
topWrap.animate({"top":"0"}, 400, function() {
subNav.animate({"top":"0"}, 400);
});
}
});
아, 그리고 것은 당신의 방법을 얻을 수있는 Fiddle이다.
실행되지 다음 경우/애니메이션 문자열을 비교하고 동일합니다 여부를 확인 여부를했습니다하는 현재 애니메이션 대기열을 지우는 부울을 포함합니다. 자세한 내용은 http://api.jquery.com/stop을 참조하십시오. – James
제임스에 동의합니다. 실제 매개 변수로 큐를 지우는 것은 좀 더 강력 합니다만, 모든 애니메이션에서 stop()을 사용하면 절대로 존재하지 않으므로 큐를 지울 수 없습니다. –
감사합니다. 실제로 작동합니다! 또한, 의견을 주셔서 감사합니다! –