2014-11-09 8 views
1

내비게이션 막대를 특정 앵커 포인트에서 쉽게 들락날락하게하고 싶습니다. 나는 애니메이션을 수행하는 동안 음수 픽셀 값과 문서의 상단으로 인해 애니메이션이 중단되는 동안 스크롤하는 것을 발견했지만 작업을 완료했습니다. 네비게이션에 숨겨진 픽셀 값을 사용하지 않고 설정 한 애니메이션을 숨기고 표시하는 방법이 있습니까?부정적인 픽셀 값을 사용하지 않고도 애니메이션 div를 들락날락하게 만드는 방법이 있습니까?

나는 visibility : hidden으로 .show() /. hide() 옵션을 시도했지만, .animate()와 통합하는 방법을 알 수없는 것 같습니다.

var t = $("#about").offset().top; 
 

 
$(window).scroll(function(){ 
 
    if($(document).scrollTop() >= t) { 
 
     $('#global-nav').stop().animate({top: '0px'}, 500, 'easeOutBounce'); 
 
    } else { 
 
     $('#global-nav').stop().animate({top: '-50px'}, 500, 'easeInExpo'); 
 
    } \t \t 
 
});
html { height: 2000px; } 
 

 
#global-nav { 
 
    height:50px; 
 
    background:#000; 
 
    z-index: 9999; 
 
    position: fixed; 
 
    left: 0; 
 
    top: -50px; 
 
    width: 100%; 
 
    color:#fff; 
 
    text-align:center; 
 
    
 
} 
 
#global-nav p { 
 
    margin-top:15px; 
 
} 
 
#about{ 
 
    margin-top:600px; 
 
}
<div id="global-nav"><p>Navigation</p>.</div> 
 

 
<div id="about"></div>

이것은 내가 지금까지 성취 한 것입니다 : http://jsfiddle.net/Hysteresis/0oazqj4y/43/

어떤 도움이 많이 이해할 수있을 것이다.

+0

당신이 이것을 바꿔 수 "나는 때문에 부정적인 픽셀 값에 애니메이션이 애니메이션을 중단됩니다 발생하는 동안 스크롤 것을 발견하고"? tho를 깨끗하게하지 마라. [이건 괜찮아 보입니다.] (http://jsfiddle.net/0oazqj4y/50/). –

+0

죄송합니다. 나는 문제가 백업을 스크롤 할 때 대부분 애니메이션에 있다고 생각한다. 애니메이션은 문서 맨 위를 찾아 애니메이션을 다시 올리려고하기 때문에 사용자가 스크롤을 계속 올리는 경우 주저하거나 말더듬습니다. 나는 당신이 바라는 것을 의미 할 수 있도록 더 큰 마진을 추가했다. http://jsfiddle.net/Hysteresis/0oazqj4y/51/. – Hysteresis

답변

0

실제로 애니메이션은 효과를 사용하며 주저하고있는 것처럼 보입니다. 그러나 항목을 숨길 때 easing 효과를 제거하면 더 어둡게 보일 것입니다. 예를 들면 :

// Without "easeInExpo" easing effect 
else { 
    $('#global-nav').stop() 
    .animate({top: '-50px'}, 500); 
} 

This looks smooth.

+0

나는 동의해야 할 것이다. 고맙습니다! 나는 그 효과가 좋았지 만 문제를 일으켰다. 그래서 네거티브 픽셀 값을 사용하는 것 외에도 탐색을 숨길 수있는 또 다른 방법이 있다면 궁금합니다. 그러나 지금은 좋은 해결책입니다. 도와 줘서 고마워! – Hysteresis

+0

환영합니다. 이미 주석에 업데이트 된 예제를 제공했습니다. 아마 알 수 없었을 것입니다 .-) –

+1

아, 이제 알 수 있습니다. 다시 한 번 감사드립니다! – Hysteresis