我一直在使用serialScroll的onBefore函数来突出显示导航列表中当前滚动的选项,不过我还希望导航突出显示它是否悬停在上面。这有效,除非鼠标离开该区域。然后从中剥离所有样式。
我尝试在当前导航项中添加一个类,并使用.not确保突出显示的导航项不会剥离其样式,尽管这不起作用。
代码如下:
onBefore: function(){
$('#selector ul li').eq($counter).find('a').css({color: '#d5d5d6'});
if($counter == 3){
$counter = 0;
} else {
$counter++;
}
if($counter == 0){
$('#selector ul li').eq($counter).find('a').css({color: '#666666'}).addClass('highlighted');
}
if($counter == 1){
$('#selector ul li').eq($counter).find('a').css({color: '#55b447'}).addClass('highlighted');
}
if($counter == 2){
$('#selector ul li').eq($counter).find('a').css({color: '#2685c7'}).addClass('highlighted');
}
if($counter == 3){
$('#selector ul li').eq($counter).find('a').css({color: '#f6db0a'}).addClass('highlighted');
}
}
});
});
// Hover Selector links to respective color
$('#selector ul li').eq(0).not('.highlighted').find('a').hover(
function(){
$(this).css({color: '#666666'});
},
function() {
$(this).css({color: '#d5d5d6'});
}
);
$('#selector ul li').eq(1).not('.highlighted').find('a').hover(
function(){
$(this).css({color: '#55b447'});
},
function() {
$(this).css({color: '#d5d5d6'});
}
);
$('#selector ul li').eq(2).not('.highlighted').find('a').hover(
function(){
$(this).css({color: '#2685c7'});
},
function() {
$(this).css({color: '#d5d5d6'});
}
);
$('#selector ul li').eq(3).not('.highlighted').find('a').hover(
function(){
$(this).css({color: '#f6db0a'});
},
function() {
$(this).css({color: '#d5d5d6'});
}
);
答案 0 :(得分:0)
要小心,因为.not
返回JQuery对象而不是布尔值,所以.not
与.length
配对以获得预期结果。或者使用.hasClass
来获得更清晰的逻辑。