繁体   English   中英

当部分不在视口中时删除菜单类

[英]Remove menu class when section is not in viewport

我正在处理带有活动类的菜单。 问题是当我滚动回页面的最顶部(所以基本上在 .spacer 之上)时,我想删除活动类。

到目前为止我得到的是:

HTML:

<div class="newMenu middle" id="newMenu">
  <ul class="">
    <li><a class="" href="#one">One</a></li> 
    <li><a class="" href="#two">Two</a></li>         
    <li><a class="" href="#three">Three</a></li>
  </ul>
</div>
<div class="spacer"</div>
<div class="content">
  <section id="one"></section>
  <section id="two"></section>
  <section id="three"></section>
</div>

CSS:

  $(window).scroll(function() {
var windscroll = $(window).scrollTop();
if (windscroll >= 100) {
  $('section').each(function(i) {
    if ($(this).position().top <= windscroll + 0) {
      $('li.active').removeClass('active');
      $('li').eq(i).addClass('active');
    }
  });

} else {

  $('nav li.active').removeClass('active');
  $('nav li:first').addClass('active');
}

}).scroll();

期待任何建议!

您可以实现添加条件windscroll <= 0

 $(window).scroll(function() { var windscroll = $(window).scrollTop(); if (windscroll >= 100) { $('section').each(function(i) { if ($(this).position().top <= windscroll + 0) { $('li.active').removeClass('active'); $('li').eq(i).addClass('active'); } }); } else { $('nav li.active').removeClass('active'); $('nav li:first').addClass('active'); } if (windscroll <= 0) $('#newMenu li.active').removeClass('active'); }).scroll();
 .box { width: 100vw; height: 500vh; } #newMenu { position: fixed; top: 0; } .active { background: red; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="newMenu middle" id="newMenu"> <ul class=""> <li><a class="" href="#one">One</a></li> <li><a class="" href="#two">Two</a></li> <li><a class="" href="#three">Three</a></li> </ul> </div> <div class="spacer"></div> <div class="content"> <section id="one"></section> <section id="two"></section> <section id="three"></section> </div> <div class="box"> </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM