使用 JQuery 将 class 添加到特定的 url 锚点
Add class to specific url anchor with JQuery
我需要更改从一个部分滚动到另一个部分的菜单的颜色。
当 url 包含特定锚点时,菜单应该改变颜色。
我尝试了以下方法,但在这种情况下,仅当我位于特定锚点时菜单才会更改,并且当我再次滚动到另一个锚点时它不再更改。
$(document).ready(function() {
if (window.location.href.indexOf("#7") > -1) {
$('.menu_item a').css('color', '#000');
} else {
$('.menu_item a').css('color', '#fff');
}
});
您还需要一个事件处理程序,它在哈希更改时也会触发,而不仅仅是在页面加载时触发,因为哈希更改不会重新加载页面。
$(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
事件.
我需要更改从一个部分滚动到另一个部分的菜单的颜色。 当 url 包含特定锚点时,菜单应该改变颜色。 我尝试了以下方法,但在这种情况下,仅当我位于特定锚点时菜单才会更改,并且当我再次滚动到另一个锚点时它不再更改。
$(document).ready(function() {
if (window.location.href.indexOf("#7") > -1) {
$('.menu_item a').css('color', '#000');
} else {
$('.menu_item a').css('color', '#fff');
}
});
您还需要一个事件处理程序,它在哈希更改时也会触发,而不仅仅是在页面加载时触发,因为哈希更改不会重新加载页面。
$(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
事件.