Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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 使用id和名称在滚动上更改活动锚定标记_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 使用id和名称在滚动上更改活动锚定标记

Javascript 使用id和名称在滚动上更改活动锚定标记,javascript,jquery,html,css,Javascript,Jquery,Html,Css,正如标题中所述,我在试图弄清楚如何让它发挥作用时遇到了一些问题。我知道有几个这样的例子,但它们不适用于我正在做的事情或我拥有的代码 我对这个项目非常深入,不能真正重新开始,我已经完成了大部分工作,但是当用户在页面上滚动并且菜单中的锚标记随之改变时,我无法获得任何工作 是否有一个简单的解决方案,使用最新的jquery和javascript,将符合和 还是我必须重新开始这个项目 以下是我所拥有的一些代码: <nav id="menu" class="menu">

正如标题中所述,我在试图弄清楚如何让它发挥作用时遇到了一些问题。我知道有几个这样的例子,但它们不适用于我正在做的事情或我拥有的代码

我对这个项目非常深入,不能真正重新开始,我已经完成了大部分工作,但是当用户在页面上滚动并且菜单中的锚标记随之改变时,我无法获得任何工作

是否有一个简单的解决方案,使用最新的jquery和javascript,将符合和

还是我必须重新开始这个项目

以下是我所拥有的一些代码:

<nav id="menu" class="menu">
                <a class="menu-trigger"></a>
                <ul>
                <li><a href="#">:: Join Community ::</a></li>
                <li><a href="#home_wrapper" class="active">Home</a></li>
                <li><a href="#about_wrapper">About</a></li>
                <li><a href="#advertise_wrapper">Advertise</a></li>
                <li><a href="#central_wrapper">GP Central</a></li>
                <li><a href="#contact_wrapper">Contact</a></li>
                <li><a href="#career_wrapper">Career</a></li>
                <li><a href="#press_wrapper">Press</a></li>
                <li><a href="#">:: My Dashboard ::</a></li>
            </ul>
            </nav>


<div id="main_body">

            <div id="about_wrapper">
            </div>

            <div class="clear"></div>

            <div id="advertise_wrapper">
            </div>

            <div class="clear"></div>

            <div id="central_wrapper">
            </div>

            <div class="clear"></div>

            <div id="contact_wrapper">
            </div>

            <div class="clear"></div>

            <div id="career_wrapper">
            </div>

            <div class="clear"></div>

            <div id="press_wrapper">
            </div>

        </div>


  • 我试过这个:

    $(window).scroll(function() {
    var windscroll = $(window).scrollTop();
    $('.page').each(function(i) {
        var posTop = $(this).position().top, 
            h = $(this).height();
    
        if (posTop  <= windscroll && posTop + h > windscroll ) {
            $('.menu ul li').removeClass('active');
            $('.menu ul li').eq(i).addClass('active');
        }
    });
    });
    
    $(窗口)。滚动(函数(){
    var windscroll=$(window.scrollTop();
    $('.page')。每个(函数(i){
    var posTop=$(this).position().top,
    h=$(this).height();
    if(事后风蚀){
    $('.menu ul li').removeClass('active');
    $('.menu ul li').eq(i).addClass('active');
    }
    });
    });
    

    任何帮助都将不胜感激

    在4dgaurav的帮助下终于找到了答案

    var sections = $('div')
      , nav = $('.menu')
      , nav_height = nav.outerHeight();
    
    $(window).on('scroll', function () {
      var cur_pos = $(this).scrollTop();
    
      sections.each(function() {
        var top = $(this).offset().top - nav_height,
            bottom = top + $(this).outerHeight();
    
        if (cur_pos >= top && cur_pos <= bottom) {
          nav.find('a').removeClass('active');
          sections.removeClass('active');
    
          $(this).addClass('active');
          nav.find('a[href="#'+$(this).attr('id')+'"]').addClass('active');
        }
      });
    });
    
    nav.find('a').on('click', function () {
      var $el = $(this)
        , id = $el.attr('href');
    
      $('html, body').animate({
        scrollTop: $(id).offset().top - nav_height
      }, 500);
    
      return false;
    });
    
    var sections=$('div')
    ,导航=$(“.menu”)
    ,nav_height=nav.outerHeight();
    $(窗口).on('scroll',函数(){
    var cur_pos=$(this.scrollTop();
    节。每个(函数(){
    var top=$(this).offset().top-导航高度,
    bottom=top+$(this.outerHeight();
    如果(cur_pos>=top&&cur_pos试试这个

    $(function(){
        $(window).scroll(function () {
            var windscroll = $(window).scrollTop();
            $('ul li a').each(function(i) {
                var posTop = $($(this).attr('href')).position().top, 
                    h = $($(this).attr('href')).height();
    
                if (posTop  <= windscroll && posTop + h > windscroll ) {
                    $('.menu ul li a').removeClass('active');
                    $(this).addClass('active');
                } else {
                    $(this).removeClass('active');
                }
            });
        });
    });
    
    $(函数(){
    $(窗口)。滚动(函数(){
    var windscroll=$(window.scrollTop();
    $('ul li a')。每个(功能(i){
    var posTop=$($(this.attr('href')).position().top,
    h=$($(this.attr('href')).height();
    if(事后风蚀){
    $('.menu ul li a').removeClass('active');
    $(this.addClass('active');
    }否则{
    $(this.removeClass('active');
    }
    });
    });
    });
    
    注意:正确应用CSS


    你能做一把小提琴吗?这里的
    .page
    是什么?有没有一个使用最新jquery和javascript的简单解决方案?:是的。它叫ScrollSpy:Thank you 4dgaurav-这个链接很有用!我做了一些修改,但没有其他链接那么多!