2013-04-09 4 views
0

I했습니다이 창 상단에 도달하면 끈적 도착 내 헤더에 다음 코드를 가지고 :스티커 헤더 스크롤 misfunction

$(function() { 
    var stickyHeaderTop = $('#outer-header').offset().top; 

    $(window).scroll(function() { 
     if ($(window).scrollTop() > stickyHeaderTop) { 
      $('#outer-header').css({ 
       position: 'fixed', 
       top: '-300px' 
      }); 
     } else { 
      $('#outer-header').css({ 
       position: 'static', 
       top: '0px' 
      }); 
     } 
    }); 
}); 

그것은 작동하지만, 콘텐츠 스크롤 상단에 도달하고 끈적수록 일반 스크롤 + 헤더 위에 있었던 div의 높이 (그래서 너무 부드럽게 보이지 않는 너무 큰 도약을 만듭니다.)

+1

-하지만 당신이 한 번 할 시작합니다 이 작동하는 솔루션입니다 그것을 'static'으로 변경하십시오. 이것을 피하려면'fixed'와'absolute' 사이를 전환해야합니다. (몇 가지 수정이 필요할 수 있습니다.) – CBroe

+0

대단히 감사합니다! 필자는 이제 문제를 해결했습니다 : D – Vloxxity

답변

0

CBroe에게 감사드립니다. # 외부 header` 그것이 fixed` '로 설정되어있는 페이지 레이아웃의 나머지 부분에 영향을주지 않는'때문에 이런 일이 발생 물론

$(function() { 
    var stickyHeaderTop = $('#outer-header').offset().top; 

    $(window).scroll(function() { 
     if ($(window).scrollTop() >= stickyHeaderTop) { 
      $('#outer-header').css({ 
       position: 'fixed', 
       top: '-300px' 
      }); 
      $('#main').css({ 
       position: 'relative', 
       top: '332px' 
      }); 
     } else { 
      $('#outer-header').css({ 
       position: 'absolute', 
       top: '0px' 
      }); 
      $('#main').css({ 
       position: 'relative', 
       top: '332px' 
      }); 
     } 
    }); 
});