首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何“抓取滚动”并在抓取时触发事件?

如何“抓取滚动”并在抓取时触发事件?
EN

Stack Overflow用户
提问于 2019-08-02 20:26:28
回答 1查看 1.1K关注 0票数 2

我尝试使用scroll-snap CSS属性,它在表示方面工作得很好。

但我需要在滚动/捕捉时触发一个事件。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-02 21:35:16

正如Mladen建议的那样,使用Intersection Observer Api似乎(有点)有效。

(在最新的Firefox上似乎有错误--当滚动起来时,观察者会发疯,只记录第一部分--在最新的Chrome上运行良好)

代码语言:javascript
复制
const observer = new IntersectionObserver(entries => {
  entries.forEach(elem => {
    if (elem.isIntersecting) {
      const text = elem.target.querySelector('h2').innerText;
      console.log('Ping! Visible: ', text);
    }
  });
});

document.querySelectorAll('section').forEach(elem => observer.observe(elem));
代码语言:javascript
复制
.scroller {
  height: 300px;
  overflow-y: scroll;
  scroll-snap-type: y mandatory;
}

.scroller section {
  height: 300px;
  background: gray;
  border: 1px solid black;
  scroll-snap-align: start;
}
代码语言:javascript
复制
<article class="scroller">
  <section>
    <h2>Section one</h2>
  </section>
  <section>
    <h2>Section two</h2>
  </section>
  <section>
    <h2>Section three</h2>
  </section>
</article>

我不知道还有没有别的办法。

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

https://stackoverflow.com/questions/57326493

复制
相关文章

相似问题

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