在滚动时向正文添加/删除类

问题描述

我有一个函数,可以在菜单项的相应部分出现时将类 current 添加菜单项中。我将如何根据当前可见的部分也向 body 添加/删除不同的类?

编辑:根据建议,它最终与 Intersection Observer 一起工作,但仍在尝试弄清楚如何添加和交换类到正文:

function setColorScheme() {
    const nav = (entries,observer) => {
      entries.forEach((entry) => {
        if (entry.isIntersecting && entry.intersectionRatio >= 0.55) {
          document.querySelector('li.current').classList.remove('current');
          var id = entry.target.getAttribute('id');
          var newLink = document.querySelector(`[href$='#${id}']`).parentElement.classList.add('current');
          //returning error
          var newClass = $('body.home').classList.add('.' + id);
        }
      });
    }
    const options = {
      threshold: 0.55,rootMargin: '150px 0px'
    };
    const observer = new IntersectionObserver(nav,options);
    const sections = document.querySelectorAll('section.op-section');
    sections.forEach((section) => {observer.observe(section);});
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)