javascript - 移动到另一个 anchor 时更改样式

标签 javascript html css

https://blackrockdigital.github.io/startbootstrap-freelancer/

正如本例所示,当我移动到每个 anchor 时,我想在每个菜单文本上给出背景颜色。我更喜欢不使用 Bootstrap 而只使用常规 javascript。

我的想法是添加一个看起来像的函数

function changeColor() {
    if (window.scrollY == sectionClass.offsetTop) {
    document.querySelector('.sectionClass').classList.add("newColorClass");
} else {
    document.querySelector('.sectionClass').classList.remove("newColorClass");
    }
}

当滚动位置位于该部分的 offsetTop 位置时,它会向元素添加一个具有背景颜色样式的类。

但这似乎并没有达到我的预期。

有什么想法吗?

最佳答案

这些是类......而不是 anchor 。 如果你想让它检测 anchor ,它们需要是#。

但更重要的是,sectionClass.offsetTop,sectionClass是否在任何地方定义为变量?尝试一下

window.scrollY == document.querySelector('.sectionClass').offsetTop

请注意,这不适用于“每个类(class)”,它可能只适用于第一个类(class)。您需要为每个 querySelector 创建一个循环

关于javascript - 移动到另一个 anchor 时更改样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46356608/

相关文章:

javascript - 获取类的每个后代元素的 ID

javascript - HTML5 本地存储不持久

javascript - 为什么 jquery 选择器 ("id,id") 选择具有重复 ID 的所有元素

javascript - After Effects ExtendScript - 随机隐藏和显示视频层

javascript - 如何在屏幕中间有一个 float 菜单

html - 在html select中制作一个不可选择的选项

html - 相对于父级对齐 HTML 特殊字符底部

使用 HTML 呈现 Android WebView

javascript - 如何向我的网页添加交互式通知徽章?

javascript - 拖放算法 'n'