Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.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
Jquery 当用户滚动到某个区段时,突出显示导航项_Jquery_Html_Css - Fatal编程技术网

Jquery 当用户滚动到某个区段时,突出显示导航项

Jquery 当用户滚动到某个区段时,突出显示导航项,jquery,html,css,Jquery,Html,Css,我已经发布了一些关于这方面的信息,但我似乎找不到解决方案。当用户滚动到某个分区时,我试图将一个类添加到与该分区相关的某个标记中。我尝试了下面的代码,但链接没有发生任何变化 $(window).scroll(function() { var position = $(this).scrollTop; $('.section').each(function() { var target = $(this).offset().top; var id = $(

我已经发布了一些关于这方面的信息,但我似乎找不到解决方案。当用户滚动到某个分区时,我试图将一个类添加到与该分区相关的某个标记中。我尝试了下面的代码,但链接没有发生任何变化

$(window).scroll(function() {
    var position  = $(this).scrollTop;

    $('.section').each(function() {
      var target = $(this).offset().top;
      var id = $(this).attr('id');
      var navLinks = $('#navigation li a');

      if(position >= target) { 
        navLinks.removeClass('current');
        $('#navigation li a[href^="#"' + id + ']').addClass('current');
      }
    });
   }); 

滚动函数中的锚定标记选择以及获取窗口偏移量时出现语法错误。使用下面的代码

$(window).scroll(function () {
   var position = window.pageYOffset;
   $('.section').each(function () {
     var target = $(this).offset().top;
     var id = $(this).attr('id');
     var navLinks = $('#navigation li a');
     if (position >= target) {
       navLinks.removeClass('current');
       $('#navigation li a[href="#' + id + '"]').addClass('current');
     }
   });
});
此外,您还需要将当前的类颜色设置为使其正常工作的重要颜色

.current {
  color: red!important;
}

非常感谢。除了一件事之外,所有的东西都是有效的,我想让它稍早一点,比如,它添加了这个类,但是它没有考虑到Nav的高度,所以我会点击链接并滚动一点,然后AdC类就发生了。我该如何解决这个问题?如何使高亮显示在实际到达节顶部之前稍早发生?好的,我添加了var navHeight=$(“#navigation”).height();并将if语句修改为if(position>=target-navHeight),它可以完美地工作。再次感谢!