我的导航栏无法在滚动时更改颜色,我已经在使用此脚本。请帮帮我
<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
答案 0 :(得分:5)
希望这样做有效,您必须使用scrollTop()
来获取vertical scrollbar position
并相应地对所选div进行更改,即在此处.navbar
。
$(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;
答案 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");
}