我需要更改从一个部分滚动到另一个部分的菜单的颜色。 当url包含特定锚时,菜单应更改颜色。 我尝试了以下但是在这种情况下,如果我在特定的锚点上,菜单会改变,当我再次滚动到另一个锚点时它不再改变。
$(document).ready(function() {
if (window.location.href.indexOf("#7") > -1) {
$('.menu_item a').css('color', '#000');
} else {
$('.menu_item a').css('color', '#fff');
}
});
答案 0 :(得分:2)
你需要一个事件处理程序,当哈希值发生变化时也会触发,而不仅仅是页面加载,因为hashchange不会重新加载页面。
$(document).ready(function() {
$(window).on('hashchange', function() {
if (window.location.href.indexOf("#7") > -1) {
$('.menu_item a').css('color','#000');
} else {
$('.menu_item a').css('color','#fff');
}
});
});
您也可以使用滚动事件,但由于哈希更改存在特定事件,并且哈希必须更改以获得不同的结果,因此您可能更适合使用hashchange
事件。< / p>