jquery - 将菜单链接类更改为在单页网站上处于事件状态

标签 jquery html css

我有一个用于某种投资组合的单页网站。在这个网站上,我在顶部有一个带有链接的菜单,使用 # 作为链接将访问者带到页面的选定部分。

我希望它做到这一点,如果您位于(站点顶部),“主页”链接会将 css 类更改为 a.menuActive,从而更改菜单按钮的颜色。因此,当您单击它或只是简单地滚动到该部分时,它会发生变化。与其他链接相同。我怎样才能做到这一点?可能需要一种脚本感应用户在页面上的位置。

最佳答案

您可以使用 jQuerys .scroll() 方法。

$( window ).scroll(function() {
    // access the current vertical position of the scrollbar with .scrollTop()
    if($(document).scrollTop() == 0){
        // scrolled to top of page --> change home link css 
    }
});

您可以通过插入链接到 jQuery 文件的脚本标记来使用 jquery(必须在您在 javascript 中使用 jQuery 之前)。你可以使用 CDNdownload jQuery并放入你的元素中。

你可以像这样改变类(我没有看到你的代码所以你必须改变一个或另一个)

// remove class 'active' from all elements with class 'fake-link'
$('.fake-link').removeClass('active');

// add class 'active' of the element with id 'fake-link-home'
$('#fake-link-home').addClass('active');

要更改主页链接以外的其他链接,您可以尝试这样的操作:

if($(document).scrollTop() > 50 && $(document).scrollTop() < 200){
    // change class of some link
} else if ($(document).scrollTop() > 200 && $(document).scrollTop() < 400){
    // change class of other link
}

希望这对您有所帮助。

关于jquery - 将菜单链接类更改为在单页网站上处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41018824/

相关文章:

javascript - 循环图像数组并将它们作为背景图像应用到 div

css - 同行搜索表单

javascript - JQuery-Bootstrap-Expanding-Vertical-Menu 重叠 Bootstrap 网格系统

css - 如何在 Safari 的 flexbox 容器中居中固定内容?

javascript - 嵌套 jQuery 循环中的变量范围

jquery - 如何在每次渲染元素时获得新的高度并删除 css 样式

html - CSS 图像大小调整。左边是文字,右边是图片

javascript - 滚动完成后,如何防止滚动触发的固定导航栏突然跳动?

jquery - 选中一个、部分或全部复选框并激活“继续”按钮不起作用

html - 调整具有放大效果的图像和文本 block