다음 JavaScript/jQuery 코드가 있습니다. 나는 그것으로 어떤 문제도 볼 수 없지만 그것이 올바르게 작동하지 않습니다. jQuery 애니메이션은 올바르게 한 번 실행 된 후 이상하게 작동합니다.
나는 그것을 정상적으로 작동하고 #forumHeader 최고 애니메이션입니다 아래로 스크롤 처음
$(document).ready(function(){
$(window).scroll(function(){
if($(window).scrollTop() > 0) {
$("#forumHeader").animate({top: '250px'});
}
else
{
$("#forumHeader").animate({top: '60px'});
}
});
});
#forumHeader
{
position: absolute;
top: 60px;
left: 0%;
height: 100px;
width: 200px;
color: white;
background-color: red;
}
#content
{
height: 1000px;
background-color: gray;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="forumHeader">Forum Header</div>
<div id="content">Some content here</div>
스크롤 이벤트를하는 데 도움이 스크롤하는 동안 한 번 이상 실행됩니다. 클래스 추가/제거 및 CSS로 애니메이션을 적용하면 수천 개의 애니메이션을 대기열에 넣는 것이 아니라 더 나은 결과를 얻을 수 있습니다. –
스크롤 이벤트를 처리하는 모든 솔루션은 스로틀/디버깅의 일부 형식을 사용하여 스크롤 이벤트가 사용자의 관점에서 스크롤 동작을 반복적으로 처리하지 않도록해야합니다. 또한 스크롤 이벤트 핸들러 외부에서 ($ ("# forumHeader")와 같은) 셀렉터를 이동하고 성능을 높이기 위해 캐시 될 때마다 요소에 대한 변수 참조를 사용할 수 있으므로 캐시하는 것이 좋습니다. – Taplar
@Taplar도 내 마음을 교차하지 않았다, 감사합니다. 아래 코드를 업데이트했습니다. –