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

假设结构如下:
<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小时内与您取得联系。