全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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

假设结构如下:

<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>

页面滚动时导航定位

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;
    }
  }
});


效果如下:

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

点击导航定位页面

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

代码如下:

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

效果如下:

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


# js导航锚点滚动效果  # javascript  # 锚点定位  # js锚点定位  # 滚动  # 导航  # js阻止移动端页面滚动的两种方法  # 解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法  # js网页侧边随页面滚动广告效果实现  # 基于AngularJS实现页面滚动到底自动加载数据的功能  # js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)  # js页面滚动时层智能浮动定位实现(jQuery/MooTools)  # JavaScript实现页面滚动图片加载(仿lazyload效果)  # 原生Js页面滚动延迟加载图片实现原理及过程  # JS实现随页面滚动显示/隐藏窗口固定位置元素  # 原生js实现页面滚动动画  # 会有  # 遍历  # 这是  # 多个  # 大家多多  # 基本原理  # 则将  # 所对应  # 就是在  # nav  # href  # nofollow  # current  # strong  # rel  # br  # external  # class  # brush  # xhtml 


相关文章: 如何在香港免费服务器上快速搭建网站?  威客平台建站流程解析:高效搭建教程与设计优化方案  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  如何快速上传建站程序避免常见错误?  如何设计高效校园网站?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  如何通过.red域名打造高辨识度品牌网站?  建站之星备案是否影响网站上线时间?  网站制作报价单模板图片,小松挖机官方网站报价?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  Swift中switch语句区间和元组模式匹配  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  建站之星伪静态规则如何正确配置?  重庆网站制作公司哪家好,重庆中考招生办官方网站?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  英语简历制作免费网站推荐,如何将简历翻译成英文?  如何快速辨别茅台真假?关键步骤解析  建站之星导航如何优化提升用户体验?  购物网站制作公司有哪些,哪个购物网站比较好?  c# 在高并发场景下,委托和接口调用的性能对比  如何高效完成独享虚拟主机建站?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  Swift开发中switch语句值绑定模式  建站主机是否等同于虚拟主机?  宁波自助建站系统如何快速打造专业企业网站?  测试制作网站有哪些,测试性取向的权威测试或者网站?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  建站之家VIP精选网站模板与SEO优化教程整合指南  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何选择最佳自助建站系统?快速指南解析优劣  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  建站之星安装需要哪些步骤及注意事项?  C++如何使用std::optional?(处理可选值)  建站主机选择指南:服务器配置与SEO优化实战技巧  如何制作一个表白网站视频,关于勇敢表白的小标题?  如何解决VPS建站LNMP环境配置常见问题?  免费网站制作appp,免费制作app哪个平台好?  整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?  如何有效防御Web建站篡改攻击?  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  如何快速生成高效建站系统源代码?  全景视频制作网站有哪些,全景图怎么做成网页?  如何登录建站主机?访问步骤全解析  如何快速生成凡客建站的专业级图册? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。