gpt4 book ai didi

Javascript 在滚动时删除类

转载 作者:行者123 更新时间:2023-12-02 22:32:51 25 4
gpt4 key购买 nike

我编写了一个脚本,一旦滚动超过 .section-2,就将名为 anotherclass 的类添加到 .section-3

但是现在我试图从 #section-3 中删除类,一旦它向上滚动并超过 .section-2 甚至 .section-1 .

window.addEventListener('scroll', function() {
var elementTarget = document.querySelector('.section-2');
if (window.scrollY > (elementTarget.offsetTop + elementTarget.offsetHeight)) {
document.querySelector('.section-3').classList.add('anotherclass');
}
});
.section-0 {
height: 1100px;
width: 100%;
background: purple;
}

.section-1 {
height: 800px;
width: 100%;
background: green;
}

.section-3 {
height: 1800px;
width: 100%;
background: orange;
}
<div class="section-0"></div>
<div class="section-1"></div>
<div class="section-2">Scroll past this div</div>
<div class="section-3"></div>

代码笔:https://codepen.io/MistaPrime/pen/XWWYeBZ

最佳答案

假设您想要一个仅涵盖该元素的解决方案,而不是更通用的元素,您只需向现有事件监听器添加一个 else 子句并调用 classList.remove:

window.addEventListener('scroll', function() {
var elementTarget = document.querySelector('.section-2');
if (window.scrollY > (elementTarget.offsetTop + elementTarget.offsetHeight)) {
document.querySelector('.section-3').classList.add('anotherclass');
} else {
document.querySelector('.section-3').classList.remove('anotherclass');
}
});

关于Javascript 在滚动时删除类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58839217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com