Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 交叉口观察者API滚动感知导航_Javascript_Css_Frontend_Intersection Observer - Fatal编程技术网

Javascript 交叉口观察者API滚动感知导航

Javascript 交叉口观察者API滚动感知导航,javascript,css,frontend,intersection-observer,Javascript,Css,Frontend,Intersection Observer,我试图使用交叉点观察者创建类似于下面的网站链接的东西,整个目标是重新创建作为每个部分导航的粘性框,我的思考过程与导航栏有关,当活动部分出现时,它会改变,我的代码笔的链接附在一张图片上,上面也显示了我在主站点上努力实现的目标,我是从这个站点的链接中得到这个想法的, 代码笔: 站点链接: Javascript const changeNav = (entries, observer) => { entries.forEach((entry) => { //

我试图使用交叉点观察者创建类似于下面的网站链接的东西,整个目标是重新创建作为每个部分导航的粘性框,我的思考过程与导航栏有关,当活动部分出现时,它会改变,我的代码笔的链接附在一张图片上,上面也显示了我在主站点上努力实现的目标,我是从这个站点的链接中得到这个想法的, 代码笔: 站点链接:

Javascript

 const changeNav = (entries, observer) => {
      entries.forEach((entry) => {
        // verify the element is intersecting
        if (entry.isIntersecting && entry.intersectionRatio >= 0.55) {
          // remove old active class
          document.querySelector(".active").classList.remove("active");
          // get id of the intersecting section
          var id = entry.target.getAttribute("id");
          // find matching link & add appropriate class
          var newLink = document
            .querySelector(`[href="#${id}"]`)
            .classList.add("active");
        }
      });
    };
    
    // init the observer
    const options = {
      threshold: 0.55,
    };
    
    const observer = new IntersectionObserver(changeNav, options);
    
    // target the elements to be observed
    const sections = document.querySelectorAll("section");
    sections.forEach((section) => {
      observer.observe(section);
    });

你想修复一些错误吗?不,基本上我想创建作为每个框的固定框,我希望我可以添加一个图像来说明我想做什么,在我的codepen演示中,当一个部分进入视口时,我使用交叉点观察者来更改活动类,这也是我试图通过固定框实现的,当一个部分进入代码笔时,该部分id的框会发生变化,如果您查看页面的右下角,请注意您在站点上向下滚动此站点时的操作@lissettdm