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

假设结构如下:
<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
相关文章:
金*站制作公司有哪些,金华教育集团官网?
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
网站制作网站,深圳做网站哪家比较好?
购物网站制作公司有哪些,哪个购物网站比较好?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
如何高效配置香港服务器实现快速建站?
建站之星安装后如何自定义网站颜色与字体?
常州企业网站制作公司,全国继续教育网怎么登录?
建站之星如何快速生成多端适配网站?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
如何用腾讯建站主机快速创建免费网站?
网站制作难吗安全吗,做一个网站需要多久时间?
如何撰写建站申请书?关键要点有哪些?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
如何快速搭建高效香港服务器网站?
宝塔面板创建网站无法访问?如何快速排查修复?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
定制建站是什么?如何实现个性化需求?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
Swift中循环语句中的转移语句 break 和 continue
利用JavaScript实现拖拽改变元素大小
实现点击下箭头变上箭头来回切换的两种方法【推荐】
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
如何获取上海专业网站定制建站电话?
建站之星会员如何解锁更多建站功能?
免费网站制作appp,免费制作app哪个平台好?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
如何用低价快速搭建高质量网站?
建站主机无法访问?如何排查域名与服务器问题
h5在线制作网站电脑版下载,h5网页制作软件?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
建站之星3.0如何解决常见操作问题?
如何在Ubuntu系统下快速搭建WordPress个人网站?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
如何选择高效响应式自助建站源码系统?
一键网站制作软件,义乌购一件代发流程?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
南京网站制作费用,南京远驱官方网站?
网站制作报价单模板图片,小松挖机官方网站报价?
相册网站制作软件,图片上的网址怎么复制?
如何用虚拟主机快速搭建网站?详细步骤解析
韩国服务器如何优化跨境访问实现高效连接?
建站之星如何修改网站生成路径?
如何通过山东自助建站平台快速注册域名?
*请认真填写需求信息,我们会在24小时内与您取得联系。