首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将类添加到位置下的块:

如何将类添加到位置下的块:
EN

Stack Overflow用户
提问于 2022-01-31 15:40:46
回答 1查看 555关注 0票数 0

我有一个有位置的块:粘粘的,下面有块。有什么方法可以跟踪粘滞块贴在顶部并在底部块中添加类的时间吗?

我想我应该使用$(window).scroll(),但不知道如何使用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-31 15:51:58

没有一种“官方”的方式告诉一个元素被粘在粘性的位置上,正如我现在知道的。但你可以用IntersectionObserver

它通过观察与视口相关的元素位置的变化来工作,在此代码示例中,它至少检查1 1px差(阈值: 1)。

代码语言:javascript
复制
const el = document.querySelector(".stickyElement")
const observer = new IntersectionObserver( 
  ([e]) => document.querySelector(".elementThatShouldUpdate").classList.toggle("desired-class", e.intersectionRatio < 1),
  { threshold: [1] }
);

observer.observe(el);

还应该更新粘性元素的CSS,以说明1px的差异:

代码语言:javascript
复制
top: -1px;

并且考虑到这个额外的偏移量,所以您应该在这个元素中添加一个边框或一个填充:

代码语言:javascript
复制
padding-top: 1px;

如果这有帮助的话请告诉我。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70928700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档