当我向下滚动时,通过添加类(.fix)来修复我的导航。它具有以下结构:
<div class="navigation-holder fix">
<div>
<nav id="navigation">
<ul id="main-nav">
<li class="menu-item-93" />
<li class="menu-item-95" />
<li class="menu-item-94" />
<li class="menu-item-96" />
<li class="menu-item-97" />
<li class="menu-item-98" />
</ul>
</nav>
</div>
</div>
li元素在活动时自动获得类(.act)。
这是固定导航的代码。
$("document").ready(function (jQuery) {
var nav = $('.navigation-holder');
$(window).scroll(function () {
if ($(this).scrollTop() > 125) {
nav.addClass("fix");
} else {
nav.removeClass("fix");
}
});
if ($(".menu-item-95").hasClass("act")) {
$(".fix").addClass("darkmenu")
};
});
如果li(95,96,98)有类(.act),我正在尝试将另一个类(.darkmenu)添加到div(.fix),但它不起作用...
答案 0 :(得分:7)
将if条件放在滚动事件处理程序中,否则只在加载dom元素时执行一次。
$(document).ready(function(jQuery) {
var nav = $('.navigation-holder');
$(window).scroll(function() {
if ($(this).scrollTop() > 125) {
nav.addClass("fix");
} else {
nav.removeClass("fix");
}
if ($(".menu-item-95").hasClass("act")) {
$(".fix").addClass("darkmenu")
}
});
});
""
document
答案 1 :(得分:0)
我认为你应该在另一个班级和准备好的回调中做到这一点
$(document).ready(function(){
if ( $(".menu-item-95").hasClass("act") ) {
$(".navigation-holder").addClass("darkmenu")};
}
});
嵌套它会使脚本在每个滚动步骤中检查它,我相信作者打算检查一次并在用户在特定页面上时更改菜单外观。