sectionInView是一个很小的jQuery is in viewport插件,它可以检测页面的某个部分是在视口中可见还是隐藏在折叠下方。
1.下载主脚本sectionInView.min.js并将其放在jQuery之后。
<script src="/path/to/cdn/jquery.slim.min.js"></script> <script src="/path/to/sectionInView.min.js"></script>
2.初始化页面分区上的sectionInView插件,并做一些很酷的事情。在下面的示例中,您将看到位于视口中的页面部分的背景颜色将发生变化,同时将CSS类添加到相应的菜单项中。
<nav> <a href="#section-1">Section One</a> <a href="#section-2">Section Two</a> <a href="#section-3">Section Three</a> </nav> <div class="container"> <section id="section-1"> <h2>Section One</h2> </section> <section id="section-2"> <h2>Section Two</h2> </section> <section id="section-3"> <h2>Section Three</h2> </section> </div>
$("section").sectionInView( function (sectionId) { // is in the viewport $('section#' + sectionId +'').css("background-color", "yellow"); $('a[href$="'+ sectionId +'"]').closest('li').addClass('active'); }, function (sectionId) { // is out of the viewport $('a[href$="'+ sectionId +'"]').closest('li').removeClass('active'); }, { offset: 200 // top offset in px } );