javascript - 取决于页面位置的 CSS 类

标签 javascript jquery css scroll

我在页面顶部有一个固定的导航,其中包含可以通过 jQuery 顺畅滚动到页面不同部分 (ID) 的链接。

是否有任何可能的方法根据您所在页面的哪个部分将 css 类(例如 .current)附加到导航链接?

例如,当我点击“关于”时,它会向下滚动到“关于”部分,并且只要您停留在该部分,导航文本就会变成橙色?

我不久前在某个地方看到过这样做,但我不记得网站,甚至不记得如何描述这种行为来搜索它。

编辑:这是一个与我正在寻找的东西相似的链接: http://www.fat-man-collective.com/hello.php

图标会根据您在页面上的位置而变化。

脚本:

<script> 
  function goToByScroll(id){
  $('html,body').animate({scrollTop: $("#"+id).offset().top - 50},'500');
  }
</script>

HTML:

<a href="javascript:void(0)" onClick="goToByScroll('about')">About</a>

[...]

<div id="about">
  [...]
</div>

非常感谢任何帮助。

最佳答案

这可以通过检查所需元素的 offset()* 函数然后编码以做出相应的响应来实现。您可以跟踪元素的偏移量,并根据生成的偏移量,相应地应用或删除适当的类。

*请参阅 offset() 的文档

关于javascript - 取决于页面位置的 CSS 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7044671/

相关文章:

javascript - Chart.js 没有响应

c# - 在 javascript 片段中使用 C# 列表

javascript - 将日历功能集成到静态 .html 站点中

javascript - 视差插件不显示图像

html - 使用 Flask 的 CSS 背景图像

php - HTML 中的复选框不起作用。单击复选框时没有任何反应。如何让它发挥作用?

javascript - 制作屏幕数字键盘

javascript - 加载变化的 div

jQuery UI 自动完成 : POST instead of GET

css - 创建小方 block 的 css 背景图案并控制不透明度