【发布时间】:2016-09-07 07:43:19
【问题描述】:
当我滚动到 WordPress 网站中的部分时,如何将每个菜单项突出显示为它自己的颜色? 例如:如果我向下滚动到关于部分,关于菜单项应该改变颜色。如果我滚动到联系人部分,菜单项应更改为不同的颜色,显然 ABOUT 应立即取消突出显示。
目前,当我向下滚动 150 像素时,菜单会固定在顶部。然后当我向下滚动到 about 部分时,菜单项变为粗体,当转到另一个部分时,相应的菜单项将立即变为粗体,并且显然 about 菜单项取消突出显示。
var num = 150; //number of pixels before modifying styles
$(window).bind('scroll', function () {
if ($(window).scrollTop() > num) {
$('nav#site-navigation').addClass('fixed');
} else {
$('nav#site-navigation').removeClass('fixed');
}
});
$("nav ul li a").addClass("marker");
var navLinks = $('nav ul li a'),
navH = $('nav').height(),
section = $('section'),
documentEl = $(document);
documentEl.on('scroll', function() {
var currentScrollPos = documentEl.scrollTop();
section.each(function() {
var self = $(this);
if (self.offset().top < (currentScrollPos + navH ) && (currentScrollPos + navH) < (self.offset().top + self.outerHeight())) {
var targetClass = '.' +self.attr('class') + 'marker';
navLinks.removeClass('active');
$(targetClass).addClass('active');
}
});
});
现在对于颜色,我将这个 sn-p 添加到第一个函数中,但颜色只有在我多次单击每个菜单项时才会改变。
$("a.marker.active:contains(About)").addClass('item-2');
$("a.marker.active:contains(Products)").addClass('item-3');
$("a.marker.active:contains(Scent)").addClass('item-4');
$("a.marker.active:contains(Clients)").addClass('item-5');
$("a.marker.active:contains(Contact)").addClass('item-6');
有什么不同的方法解决这个问题?
【问题讨论】:
标签: javascript jquery css