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. Python 定义动态变量

    问题描述 在做数据处理时,对一些分组得来的数据,所做的操作大同小异,变量的命名也都拥有相同的结构,比如对每个月份的数据求均值.方差等统计量,变量的命名可取为“n月的均值”,“n月的方差”,抽象出来就是 ...

  2. 格式工厂转化成mp4 avc格式 暴风影音不能播放的解决方法

    格式工厂转化成mp4 avc格式 暴风影音不能播放的解决方法  先转成其他mp4 确保能播放 然后再转成avc

  3. 多线程之美1一volatile

    目录 一.java内存模型 1.1.抽象结构图 1.2.概念介绍 二.volatile详解 2.1.概念 2.2.保证内存可见性 2.3.不保证原子性 2.4.有序性 一.java内存模型 1.1.抽 ...

  4. Python 命令行之旅:深入 click 之选项篇

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  5. [Collection] 的常用方法有这些。

  6. lqb 基础练习 十六进制转十进制

    基础练习 十六进制转十进制 时间限制:1.0s   内存限制:512.0MB     问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. 注:十六进制数中的10~ ...

  7. nyoj 10 skiing (DFS)

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

  8. Linux网络配置文件

    centos为例: /etc/sysconfig/network文件 用于基本的网络配置信息,包含了控制和网络有关的文件和守护进程的行为参数,包括主机名.网关等 (默认:我的cent0s7在为空,fe ...

  9. python三种格式化输出

    name = '张三'age = 22job = Engineersalary = 99999999 info1 = ''' ---------- info1 of %s ---------- nam ...

  10. Mac上安装并配置JDK

    1,下载 点击 官网 ,进入下载界面, 同意协议内容 找到对应的Mac版本, 2,安装 安装下载下来的文件,期间会要求输入一次电脑密码,然后自动安装完. 如果显示文件已经损坏,打开 终端 输入 sud ...