滚动时更改导航栏颜色

时间:2016-11-02 08:09:11

标签: javascript css twitter-bootstrap

我的导航栏无法在滚动时更改颜色,我已经在使用此脚本。请帮帮我

<script>
        $(document).ready(function(){
            $(window).scroll(function() { 
                if ($(document).scrollTop() > 50) { 
                    $(".navbar-fixed-top").css("background-color", "#f8f8f8"); 
                } else {
                $(".navbar-fixed-top").css("background-color", "transparent");
            }
            });
        });
    </script>

我正在使用bootstrap

3 个答案:

答案 0 :(得分:5)

希望这样做有效,您必须使用scrollTop()来获取vertical scrollbar position并相应地对所选div进行更改,即在此处.navbar

&#13;
&#13;
$(document).ready(function(){
	$(window).on("scroll",function(){
  	var wn = $(window).scrollTop();
    if(wn > 120){
    	$(".navbar").css("background","rgba(255,0,0,1)");
    }
    else{
    	$(".navbar").css("background","rgba(1,1,1,1)");
    }
  });
});
&#13;
body{
  height:1600px;
}
.navbar{
  background:rgba(1,1,1,1);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<nav class="navbar navbar-fixed-top">
  <div class="container-fluid">
    <div class="navbar-header">
      <a class="navbar-brand" href="#">WebSiteName</a>
    </div>
    <ul class="nav navbar-nav">
      <li class="active"><a href="#">Home</a></li>
      <li><a href="#">Page 1</a></li>
      <li><a href="#">Page 2</a></li> 
      <li><a href="#">Page 3</a></li> 
    </ul>
  </div>
</nav>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

我只是好奇你为什么不使用已经附带bootstrap的词缀? 链接在这里 : http://www.w3schools.com/Bootstrap/bootstrap_affix.asp

在您的案例中,为您的导航代码添加此行

<nav class="navbar navbar-fixed-top"data-spy="affix" data-offset-top="(scroll value)" >

和css

.affix.navbar{
 background-color: color-you-prefer;
 }

答案 2 :(得分:0)

使用css class颜色:

.anycolor {
    background-color: #f8f8f8";
}

并使用此代码执行此操作:

if ($(window).scrollTop() > 50){
    $('.navigation').addClass( "anycolor");
}
else {
    $('.navigation').removeClass("anycolor");
}