2012-04-02 3 views
0

페이지 상단에 도달 할 때 사이트 이름/로고 및 내비게이션을 설정하려고합니다. 화면 상단에서 사라지는 대신 나는 position: fixed;을 시도했지만, 내가해야 할 일이 아니라는 것을 놓치지 않는 한. 다음과 같이CSS를 사용하여 화면 상단에서 HTML 요소 스크롤을 중지하는 방법

내 레이아웃, 그리고 내가 페이지 상단 떨어져 사라지는하지하고자하는 header-topheader-nave - 그것은 심지어 경우

<header> 
    <div id="header-top"></div> 
    <div id="header-middle"></div> 
    <div id="header-nav"></div> 
</header> 

아무도 여기에 대한 조언을, 또는 알고 있나요을 CSS로 가능합니까? 어느 쪽이든, 튜토리얼이나 튜토리얼에 대한 포인터가 도움이 될 것입니다.

필요한 경우 JS에 개방되어 있습니다. 감사.

+0

'header' 요소에'position : fixed'을 적용 했습니까? – fcalderan

+1

자바 스크립트가 필요하다고 생각합니다. 헤더가 창 상단에 도달하면 dinamically position : fixed를 설정하여 그대로 유지합니다. – ezakto

+0

@ Fabrizio - 필자는 여러 가지 다른 시나리오에서 시도해 보았습니다. ('header-middle'을 고정시키고 싶지 않기 때문에'header'는 절대 사용하지 않습니다), 결과는 항상'header-top'과' header-nav' 엘리먼트는 헤더가 중간 스크롤과 함께 정확히 어디에 머물러있었습니다. 내 이해에서 그것은 고정의 한계이지만, implimentation에 대한 제안은 환영받을 것이다. 감사. –

답변

1

감사합니다, 여기에 내가 할 찾고 정확히 acheives JS이다.

$(function(){ 

    var top = $('#header-top-full-width'); 
    var nav = $('#header-nav-full-width'); 

    $(window).scroll(function(){ 

     if($(window).scrollTop() >= 90){ 
      border_bottom('0'); 
     } else if($(window).scrollTop() === 89){ 
      border_bottom('1'); 
     } else if($(window).scrollTop() === 88){ 
      border_bottom('2'); 
     } else if($(window).scrollTop() <= 87){ 
      border_bottom('3'); 
     } 

     if($(window).scrollTop() >= 90){ // To far, the navigation needs to be set in place 
      nav.css('position', 'fixed'); 
      nav.css('margin-top', '-90px'); 
      if($('#nav-spacer').length) { // Add a spacer so the height is correct if needs be 
      } else { 
       $('<div id="nav-spacer"></div>').insertAfter('#header-nav-full-width'); 
       $('#nav-spacer').css('height', '32px'); 
      } 
     } else { // The navigation needs to just be static, so remove the spacer and make it static 
      nav.css('position', 'static'); 
      nav.css('margin-top', '0'); 
      $('#nav-spacer').remove(); 
     }  
    }); 
}); 
+0

당신은 혼자 CSS로 할 방법을 찾았나요? 아니면 불가능한가요? –

+1

@SethUrquhart - 그것은 당신이 원하는 것에 달려 있습니다. 사용자가 특정 지점으로 스크롤 한 후에 요소를 수정하는 방법이 필요하여 JS 사용이 필요했습니다. 항상 같은 위치로 고정시키고 싶다면'position : fixed; '를 사용할 수 있습니다. –

+0

그래, 나는 고정 된 위치를 안다, 당신이 헤더를 맨 위로 이동하려고 시도한 JS 협조없이 할 수있는 것이 있다면 확신 할 수 없다. 내가 Javascript를 배워야 할 것 같아! :) 감사. –

관련 문제