使用JQuery将类添加到特定的url锚点

时间:2016-11-29 13:17:39

标签: jquery scroll anchor

我需要更改从一个部分滚动到另一个部分的菜单的颜色。 当url包含特定锚时,菜单应更改颜色。 我尝试了以下但是在这种情况下,如果我在特定的锚点上,菜单会改变,当我再次滚动到另一个锚点时它不再改变。

$(document).ready(function() {
  if (window.location.href.indexOf("#7") > -1) {
    $('.menu_item a').css('color', '#000');
  } else {
    $('.menu_item a').css('color', '#fff');
  }
});

1 个答案:

答案 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>