javascript - Firefox 保留在滚动动画中添加的类
问题描述
我想根据它们在窗口 innerHeight 上的位置对某些元素进行一些动画处理。我编写了这段代码,它在 Chrome 上运行良好,但在 Firefox 上它在我的代码发生任何更改后第一次运行良好,然后在刷新后保留通过 JavaScript 添加的类:
const Elements = document.querySelectorAll("h1,p");
let AnimateOnScroll = (scrolledTop) => {
Elements.forEach(Element => {
if (scrolledTop + window.innerHeight > Element.offsetTop + Element.offsetHeight) {
Element.classList.add("active");
} else {
}
});
};
AnimateOnScroll(0);
window.addEventListener("scroll", () => {
const scrolledTop = window.scrollY;
AnimateOnScroll(scrolledTop);
});
我的代码有问题吗?为什么 Firefox 刷新后仍保留添加的类?
解决方案
我相信保留类可能是基于这种保留状态的特征之一。
我会准备好一个文档并检查该类是否存在,如果存在则将其删除。
保持其他代码不变,然后添加
window.addEventListener("load", () => {
Elements.forEach(Element => {
Element.classList.remove("active");
});
})
未优化,不知道如何优化。如果有人能纠正我,那就太好了。
推荐阅读
- google-apps-script - 谷歌脚本格式日期创建不可能的日期
- javascript - 如何创建具有 2 个键和 1 个值的对象?
- python - 是否有相当于 `pip install -t` 的`conda`
- ffmpeg - ffmpeg drawtext 支持藏文字体
- sql - SQL 在搜索下方查找结果 1 字段
- shell - 如何拆分路径以获取shell脚本中的目录
- javascript - 如何使用脚本仅隐藏一半图像?
- java - Java 多线程应用程序 - 在 Hive 上间歇性地获取“错误文件描述符”异常
- aws-sdk - AWS WorkDocs 开发工具包 - 如何搜索文件夹?
- javascript - 使用 JSON.parse 从魔兽日志 API 获取数据