html 结构排版:

// 定位到页面左侧或者右侧

<div class="nav"> 

       <ul id="menu-list">

            <li><a href="#one" class="links one">Menu 1</a></li>

            <li><a href="#two" class="links two">Menu 2</a></li>
            <li><a href="#three" class="links three">Menu 3</a></li>
            <li><a href="#four" class="links four">Menu 4</a></li>
            <li><a href="#five" class="links five">Menu 5</a></li>
            <li><a href="#six" class="links six">Menu 6</a></li>
       </ul>
</div>

// 页面顶部的其它内容块

<div class="other-content"> 这里是其它的内容,假设内容高度为300px</div>

//  页面与导航对应的内容块
<div id="wrapper">
       <div id="one" class="container">one</div>
       <div id="two" class="container">two</div>
       <div id="three" class="container">three</div>
       <div id="four" class="container">four</div>
       <div id="five" class="container">five</div>
       <div id="six" class="container">six</div>
</div>

js效果实现:

<script>

/*
         菜单-内容块 对应

利用锚点链接的原理,所以导航的a标签的href= # + 对应内容块的ID
        为了设置对应导航高亮,为了方便起见,导航的class需要与对应内容块的ID保持一致
        如果楼层上面有头部等其他内容需要判断currentScroll 的值是否大于上面其它内容块的高度,否则执行这一步(var id = $currentSection.attr('id'))的时候 会报错
     */

      $(window).scroll(function(){

           var $sections = $('.container'); // 获取所有的内容块
           var currentScroll = $(this).scrollTop();  // winodw滚动的高度
           var $currentSection ;   //   当前内容块
         $sections.each(function(){
            var divPosition = $(this).offset().top;  // 获取到当前内容块具体页面顶部的距离
            if( divPosition - 1 < currentScroll){  //  通过条件判断匹配到当前滚动内容块
               $currentSection = $(this);
            }

    // 如果楼层最上端有其它的内容快需要加一个判断

    if(currentScroll > 300){

       var id = $currentSection.attr('id');
                 $('.links').removeClass('menu-active');
                 $("."+id).addClass('menu-active');

    }
            

         })

});

</script>

文章来源:http://caibaojian.com/higlight-nav-link.html

用jquery实现楼层滚动对应导航高亮的更多相关文章

  1. jquery版楼层滚动特效

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>楼 ...

  2. jQuery粘性跟随滚动条滚动的导航栏源代码下载

    jQuery粘性跟随滚动条滚动的导航栏源代码下载 作者:网页模板 大小:0.005MB 点击次数:3494 发布时间:2014-03-07 12:55 分享到:0 特效介绍 jQuery粘性跟随滚动条 ...

  3. jQuery右侧悬浮楼层滚动 电梯菜单

    http://www.kaiu.net/effectCon.aspx?id=2198 <!doctype html> <html> <head> <meta ...

  4. vue使用原生js实现滚动页面跟踪导航高亮

    需要使用vue做一个专题页面. 滚动页面指定区域导航高亮. BetterScroll:可能是目前最好用的移动端滚动插件 如何自定义CSS滚动条的样式? 监听滚动页面事件,对比当前页面的位置与元素的位置 ...

  5. JS原生代码实现导航高亮

    一 实现原理 根据当前页面滚动条的高度判断当前页面应当与导航栏中哪个导航相关联,并对相应的导航设置高亮样式. 二 代码解析 先简单写一个页面顶端的导航栏:<nav>  <ul> ...

  6. js和jquery实现页面滚动监听

    js和jquery实现页面滚动监听 一.总结 一句话总结:onscroll方法和监听页面元素的高度都可以实现滚动监听. 1.onscroll方法实现滚动监听的核心代码是什么? <body ons ...

  7. jQuery图片无缝滚动JS代码ul/li结构

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. jQuery图片无缝滚动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. 一款基于jquery固定于顶部的导航

    今天给大家分享一款基于jquery固定于顶部的导航,这款导航当浏览器滚动条位于顶部时,导航高度较高,当浏览器滚动向下滚动时,导航高度自动减低,并位于顶部.效果图如下: 在线预览   源码下载 实现的代 ...

随机推荐

  1. Java程序线上故障排查

    目录 一.Linux 内存和cpu 网络 磁盘 /proc文件系统 二.JVM Java堆和垃圾收集器 gc日志分析 JVMTI介绍 Attach机制 java自带工具 三.三方工具 jprofile ...

  2. Jenkins + docker ,容器中跑docker服务

    1. 宿主机:安装docker 2. 启动jenkins服务 https://jenkins.io/download/ Jenkins官网找自己需要的镜像版本号进行使用. docker run -it ...

  3. 手把手教你如何在阿里云ECS搭建Python TensorFlow Jupyter

    前段时间在阿里云买了一台服务器,准备部署网站,近期想玩一些深度学习项目,正好拿来用.TensorFlow官网的安装仅提及Ubuntu,但我的ECS操作系统是 CentOS 7.6 64位,搭建Pyth ...

  4. nyoj 10 skiing (DFS)

    skiing 时间限制:3000 ms  |  内存限制:65535 KB 难度:5   描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当 ...

  5. nyoj 55-懒省事的小明(priority_queue)

    55-懒省事的小明 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:8 submit:62 题目描述:       小明很想吃果子,正好果园果子熟了. ...

  6. 构思一个在windows下仿objc基于动画层ui编程的ui引擎

    用c/c++编程有些年了,十个指头可以数齐,在涉入iOS objc开发后,有种无比舒服的感觉,尤其在UI开发上. 在QuartzCore.framework下动画和透明窗口等许多效果的事都变得那么方便 ...

  7. openresty如何完美替换nginx

    下载openresty wget https://openresty.org/download/openresty-1.15.8.1.tar.gz tar zxvf openresty-1.15.8. ...

  8. Rust 入门 (一)

    Rust 语言的介绍.特性什么的都不说了,如有需要,请自行了解.这里我们直接进去正题. 一.开发环境 mac或linux系统,在命令行安装 curl https://sh.rustup.rs -sSf ...

  9. Mybaits学习总结

    一.Mybatis介绍 邮箱:1727292697 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的 ...

  10. python3 之 闭包实例解析

    一.实例1: def make_power(y): def fn(x): return x**y return fn pow3 = make_power(3) pow2 = make_power(2) ...