2015-02-01 4 views
5

이 해결책을 찾고 있었지만 제대로 작동하지 않습니다.페이지가 스크롤 될 때 머리글 배경색을 변경하십시오.

사용자가 페이지를 스크롤하기 시작할 때 내 페이지 머리글이 투명한 배경에서 흰색 배경으로 변경되기를 바랍니다.

HTML 코드는 다음과 같습니다

<div class="header"> 
    <div class="topbar"></div> 
    <div class="sitelogo"></div> 
    <nav id="navigation"> 
     <ul> 
      <li id="twitter"><a href="http://www.twitter.com/iamdanmorris"><em>Twitter</em></a></li> 
      <li><a href="#contact">Contact</a></li> 
      <li><a href="#blog">Blog</a></li> 
      <li><a href="#">Portfolio</a></li> 
      <li><a href="#">About</a></li> 
      <li><a href="#">Home</a></li> 
     </ul> 
    </nav> 
    <div style="clear:both;"></div> 
</div> 

CSS 코드는 다음과 같습니다

.header { 
    position: fixed; 
    top: 0; 
    left: 0; 
    width: 100%; 
    padding: 0; 
    z-index: 10000; 
    -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25); 
    -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25); 
    box-shadow: 0 1px 5px rgba(0, 0, 0, 0.25); 
    transition: all 0.2s ease-in-out; 
    height: auto; 
    background-color:transparent; 
} 
+0

나는 그것을 시도하지 않았습니다. – iamdanmorris

답변

10
$(window).on("scroll", function() { 
    if($(window).scrollTop() > 50) { 
     $(".header").addClass("active"); 
    } else { 
     //remove the background property so it comes transparent again (defined in your css) 
     $(".header").removeClass("active"); 
    } 
}); 

바이올린 : http://jsfiddle.net/634d6vgq/2/

이 요소에 background-color: #fff를 추가합니다 사용자가보다 더 스크롤 경우 상단에서 50 픽셀

이것은 (쉽게 유지하기 위해) 당신이 CSS 내에서 스타일을 할 수 있도록 "활성"클래스를 추가합니다

편집 :

$(function() { 
    $(window).on("scroll", function() { 
     if($(window).scrollTop() > 50) { 
      $(".header").addClass("active"); 
     } else { 
      //remove the background property so it comes transparent again (defined in your css) 
      $(".header").removeClass("active"); 
     } 
    }); 
}); 

그리고 당신의 CSS :

.active { background-color: #fff} 

이 CSS 규칙을 추가해도됩니다. 배경색이 바뀌지 않을 것입니다.

+0

문제가 해결되었습니다. 도와 주셔서 감사합니다 !! – iamdanmorris

+0

요소가로드되었는지 확인하려면이 스크립트를 페이지 아래쪽에 배치하십시오. 활성 헤더의 스타일을 지정하는 클래스를 CSS에서 만들었습니까? (예 : .active {background-color : #fff})이 작은 코드를 추가하지 않으면 작동하지 않는 경우 – fdsugfh

+1

수정 사항을 참조하십시오. 현재 유일한 문제는 내가 정말로하고 싶습니다. 투명 배경에 흰색 탐색 텍스트가 있고 스크롤 할 때 흰색 배경에 회색 텍스트가 있습니다. 네가 도울 수 있다고 생각하니? @sakesalverda – iamdanmorris

관련 문제