javascript - 如何根据页面是否滚动到顶部来修改类?

标签 javascript css

我想在用户滚动离开页面顶部时向 HTML 元素添加一个类,然后在用户返回页面顶部时删除该类。我认为 JavaScript 是实现此目标的最佳方式,但不知道如何实现。

例如,在演示中,文本类在滚动到顶部时为“红色”,而在其他任何地方都为“蓝色”。

DEMO

CSS

.red {
  color:red;
}
.blue {
  color:blue;
}

HTML

<br>
<br>
<br>
<br>
<br>
<p  id="changeme" class="red">Text</p>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>

最佳答案

可以通过window.scrollY获取页面当前的滚动位置

对于 window.scrollY === 0window.scrollY > 0 的情况,您需要使用一些逻辑为滚动事件添加事件监听器。 p>

于是添加事件监听器,并绑定(bind)添加或删除类的函数。

window.addEventListener("scroll", runOnScroll);

function runOnScroll() {
    if (window.scrollY === 0) {
        //do stuff for being at the top of the page
    } else if (window.scrollY > 0) {
        //do stuff for not being at the top of the page
    }
}

如果您正在为如何填写上面代码示例的注释部分而苦恼,请提出另一个关于如何使用 javascript 操作 HTML 元素的问题。

关于javascript - 如何根据页面是否滚动到顶部来修改类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50141485/

相关文章:

css - .less 文件中的 Angular 4 导入不会在更改时更新

html - 使段落填充仅影响内部文本

html - 使用 CSS Flexbox 旋转 HTML 文本输入

javascript - 如何使用 JavaScript 将样式类名称添加到我的 anchor 元素上

javascript - 在 amchart 中用折线图显示条形线上的背景阴影

javascript - 为什么 string.split() 对于正则表达式的行为不同?

javascript - Vue.js - 在悬停时添加删除按钮并在按下按钮时将其删除

javascript - Google map 标记未通过 ajax 动态显示

javascript - WordPress wp_localize_script 做什么?

javascript - 为什么 AngularJS ng-model 返回 [object%20Object] 作为值而不是选项值(整数)?