【发布时间】:2015-03-31 06:06:48
【问题描述】:
我对 jQuery 完全陌生,所以请多多包涵。所以我想要对我的网站做的是在用户向下滚动时让导航栏“粘在顶部”。那已经在起作用了。
但是,我想完成更多的事情。我希望导航栏在“粘性”时改变颜色并占据容器的整个宽度。
不知何故,我无法让它与 .addClass 一起使用。我尝试了很多事情,例如删除“。”上课前。我确定我做错了什么。请开导我的心!
$(function() {
var fixed_nav_scroll_top = $('.fixed_nav').offset().top;
var fixed_nav = function(){
var scroll_top = $(window).scrollTop();
var $ul = $('.fixed_nav ul').width()+'px';
if (scroll_top > fixed_nav_scroll_top) {
$('.fixed_nav').css({ 'position': 'fixed', 'left':0, 'top':0});
$('.fixed_nav ul').css({'width':$ul, 'display':'block', 'text-align':'center'});
$('.fixed nav ul').addClass('.full_bar ul');
} else {
$('.fixed_nav').css({ 'position': 'relative' });
$('.fixed nav ul').removeClass('.full_bar ul');
}
};
fixed_nav();
$(window).scroll(function() {
fixed_nav();
});
});
.fixed_nav_wrapper {
width:710px;
margin:0 auto;
}
.fixed_nav {
width:100%;
height:50px;
margin: -5px auto 0 auto;
background-color:transparent;
z-index:1000;
}
.fixed_nav ul {
display:block;
margin:0 auto;
padding:5px;
list-style-type:none;
}
.fixed_nav ul li {
display:inline;
margin:0 auto;
padding:0;
}
.fixed_nav ul li a {
display:block;
float:left;
margin:0 25px 0 25px;
padding:0 5px 0 4px;
outline:5px solid rgba(235,235,235,1);
outline-offset:-4px;
font-size: 2rem;
color:rgba(235,235,235,1);
font-family: Inversionz, sans-serif;
letter-spacing:-0.25rem;
}
.fixed_nav ul li a:hover {
color:rgba(255,255,255,1) !important;
-webkit-box-shadow: 0px 0px 13px 0px rgba(255, 255, 255, 1), 0px 0px 13px 0px rgba(255, 255, 255, 1);
-moz-box-shadow: 0px 0px 13px 0px rgba(255, 255, 255, 1), 0px 0px 13px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 13px 0px rgba(255, 255, 255, 1), 0px 0px 13px 0px rgba(255, 255, 255, 1);
}
/*---------*/
.full_bar {
width:100%;
height:50px;
margin: -5px auto 0 auto;
background:black !important;
z-index:1000;
}
.full_bar ul {
display:block;
margin:0 auto;
padding:500px;
list-style-type:none;
}
.full_bar ul li {
display:inline;
margin:0 auto;
padding:0;
}
.full_bar ul li a {
display:block;
float:left;
margin:0 25px 0 25px;
padding:0 5px 0 4px;
outline:5px solid rgba(135,135,235,1);
outline-offset:-4px;
font-size: 2rem;
color:rgba(135,235,235,1);
font-family: Inversionz, sans-serif;
letter-spacing:-0.25rem;
}
.full_bar ul li a:hover {
color:rgba(155,255,255,1) !important;
-webkit-box-shadow: 0px 0px 13px 0px rgba(255, 255, 255, 1), 0px 0px 13px 0px rgba(255, 255, 255, 1);
-moz-box-shadow: 0px 0px 13px 0px rgba(255, 255, 255, 1), 0px 0px 13px 0px rgba(255, 255, 255, 1);
box-shadow: 0px 0px 13px 0px rgba(255, 255, 255, 1), 0px 0px 13px 0px rgba(255, 255, 255, 1);
}
<div class="fixed_nav_wrapper">
<nav class="fixed_nav">
<ul>
<li><a href="#" class="current">home</a></li>
<li><a href="#">me</a></li>
<li><a href="#">services</a></li>
<li><a href="#">work</a></li>
<li><a href="#">contact</a></li>
</ul>
</nav>
</div>
【问题讨论】:
-
首先,您不需要包含“.”在
addClass()。其次,如果我们能看到导航栏的 html 将会很有帮助,但我怀疑您添加ul类可能会出错。您的addClass()应该只是addClass("full_bar");尝试使用开发人员工具检查它以查看实际应用的内容 -
@robobobobo 感谢您的回答,我添加了 HTML 供您查看!
标签: javascript jquery html css class