gpt4 book ai didi

javascript - 如何检测 `article`的滚动位置并添加类

转载 作者:可可西里 更新时间:2023-11-01 13:07:54 25 4
gpt4 key购买 nike

我有四篇不同的文章,内容各不相同。我所要做的就是当滚动位置到达需要添加的文章的顶部位置时,类处于事件状态。我试过没有成功。这是我到目前为止尝试过的代码。

HTML

<article></article>
<article></article>
<article></article>
<article></article>

CSS

article{
height: 800px;
background-color: gray;
}
article:nth-child(2){
background-color: blue;
}
article:nth-child(3){
background-color: pink;
}
article:last-child{
background-color: orange;
}
article.active{
background-color: red;
}

JQuery

var scrollPosition = $('article').scrollTop();
$(window).scroll(function () {
if ($(window).scrollTop() == scrollPosition) {
$(this).addClass('active');
} else {
$(this).removeClass('active');
}
})

Working Demo

最佳答案

我推荐使用 .offset()获取元素的绝对位置。

这是一个例子:

$(window).scroll(function () {
$('article').each(function () {
var ArtOffsetTop = $(this).offset().top;
var ArtOffsetBottom = $(this).offset().top + $(this).height();
if (($(window).scrollTop() >= ArtOffsetTop) && ($(window).scrollTop() <= ArtOffsetBottom)) {
$(this).addClass('active');
} else {
$(this).removeClass('active');
}
})
})

Live demo


我添加了一个新变量 ArtOffsetBottom 来检测 $(window).scrollTop() 是否在文章的顶部和底部之间。

关于javascript - 如何检测 `article`的滚动位置并添加类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29962183/

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