2016-11-20 81 views
1

當導航欄到達我的頁面的關於部分時,我試圖讓導航欄的背景顏色從透明變爲藍色。根據來自控制檯的調用,滾動後,scroll_start變得大於aboutOffSetTop,但導航欄顏色不變。爲什麼會發生這種情況,我該如何解決這個問題?爲什麼導航欄在滾動後不能改變其背景顏色?

HTML:

<div id="titleSection"> 
    <div class="nav_bar"> 
     <ul> <li> <a href="index.html">HOME</a> </li> 
     <li> <a href="transportation.html">TRANSPORTATION</a> </li> 
     <li> <a href="crafts.html">SHOPS</a> </li> 
     <li> <a href="activities.html">EVENTS</a> </li> 
     <li> <a href="food.html">FOOD</a> </li> 
     </ul> 
    </div> 
</div> 

<div class="about"> 
    <p> Text here </p> 
</div> 

CSS:

.nav_bar { 
    transition: 1s; 
    background-color: transparent; 
} 

的JavaScript:

$(document).ready(function() { 
    var scroll_start = 0; 
    var aboutOffSetTop = $('.about').offset().top; 
    $(document).scroll(function() { 
    scroll_start = $(window).scrollTop(); 
    if(scroll_start > aboutOffSetTop) { 
     $('.nav').css('background-color', 'rgba(34,34,34,0.9)'); 
    } else { 
     $('.nav').css('background-color', 'transparent'); 
    } 
    }); 
}); 

回答

2

更改這一部分:

if(scroll_start > aboutOffSetTop) { 
      $('.nav').css('background-color', 'rgba(34,34,34,0.9)'); 
     } else { 
      $('.nav').css('background-color', 'transparent'); 
} 

對此:

if(scroll_start > aboutOffSetTop) { 
      $('.nav_bar').css('background-color', 'rgba(34,34,34,0.9)'); 
     } else { 
      $('.nav_bar').css('background-color', 'transparent'); 
}