• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > Javascript实现页面滚动时导航智能定位

Javascript实现页面滚动时导航智能定位

作者:wangkun 字体:[增加 减小] 来源:互联网 时间:2017-05-11

wangkun通过本文主要向大家介绍了javascript 跳转页面,javascript 刷新页面,javascript注册页面,javascript登录页面,javascript 关闭页面等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

常见的开发页面中可能会有这么一个需求,页面中会有多个模块,每个模块对应一个导航,当页面滚动到某个模块时,对应的模块导航需要加上一个类用于区分当前用户所浏览区域。

假设结构如下:

<div class="container">
  <div class="wrapper">
    <div class="section" id="section1">section1</div>
    <div class="section" id="section2">section2</div>
    <div class="section" id="section3">section3</div>
    <div class="section" id="section4">section4</div>
    <div class="section" id="section5">section5</div>
  </div>
  <nav>
    <a href="#section1" rel="external nofollow" class="current">section1</a>
    <a href="#section2" rel="external nofollow" >section2</a>
    <a href="#section3" rel="external nofollow" >section3</a>
    <a href="#section4" rel="external nofollow" >section4</a>
    <a href="#section5" rel="external nofollow" >section5</a>
  </nav>
</div>
</div>

页面滚动时导航定位

js代码如下:

var $navs = $('nav a'),          // 导航
  $sections = $('.section'),       // 模块
  $window = $(window),
  navLength = $navs.length - 1;
  
$window.on('scroll', function() {
  var scrollTop = $window.scrollTop(),
    len = navLength;

  for (; len > -1; len--) {
    var that = $sections.eq(len);
    if (scrollTop >= that.offset().top) {
       $navs.removeClass('current').eq(len).addClass('current');
       break;
    }
  }
});


</div>

效果如下:

不难看出,基本原理就是在window滚动的时候,依次将模块从后向前遍历,如果window的滚动高度大于或等于当前模块的距页面顶部的距离,则将当前模块对应的导航突出显示,并且不再继续遍历

点击导航定位页面

除了这种需求外,还有另一种需求,就是点击导航定位到导航所对应模块的顶部。

代码如下:

$navs.on('click', function(e) {
  e.preventDefault();
  $('html, body').animate({
    'scrollTop': $($(this).attr('href')).offset().top
  }, 400);
});
</div>

效果如下:

以上基本上满足了业务的基本需求,这是工作中总结的经验,希望对大家的学习有所帮助,也希望大家多多支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Javascript实现页面滚动时导航智能定位
  • JavaScript实现定时页面跳转功能示例
  • javascript监听页面刷新和页面关闭事件方法详解

相关文章

  • 2017-05-11分享十三个最佳JavaScript数据网格库
  • 2017-05-11jquery实现多次上传同一张图片
  • 2017-05-11jquery代码规范让代码越来越好看
  • 2017-05-11Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
  • 2017-05-11BootStrap栅格系统、表单样式与按钮样式源码解析
  • 2017-05-11jquery仿苹果的时间/日期选择效果
  • 2017-05-11JavaScript组件开发之输入框加候选框
  • 2017-05-11js通过指定下标或指定元素进行删除数组的实例
  • 2017-05-11AngularJS constant和value区别详解
  • 2017-05-11AngularJS的Filter的示例详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • jQuery+pjax简单示例汇总
    • nodeJs链接Mysql做增删改查的简单操作
    • jQuery实现简单的抽奖游戏
    • JavaScript中this的用法及this在不同应用场景的作用解析
    • 整理一些最近经常遇到的前端面试题
    • 利用imgareaselect辅助后台实现图片上传裁剪
    • 从零开始学习Node.js系列教程之SQLite3和MongoDB用法分析
    • jQuery密码强度验证控件使用详解
    • 微信小程序开发之相册选择和拍照详解及实例代码
    • 详解javascript中对数据格式化的思考

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有