介绍
小编给大家分享一下Javascript如何实现页面滚动时导航智能定位,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
Java有哪些集合类
Java中的集合主要分为四类:1,列清单表:有序的,可重复的;2、队列队列:有序,可重复的;3,设置集合:不可重复;4、地图映射:无序,键唯一,值不唯一。
常见的开发页面中可能会有这么一个需求,页面中会有多个模块,每个模块对应一个导航,当页面滚动到某个模块时,对应的模块导航需要加上一个类用于区分当前用户所浏览区域。
假设结构如下:
& lt; div 类=癱ontainer"比;
& lt;才能div 类=皐rapper"比;
,,,& lt; div 类=皊ection", id=皊ection1"祝辞section1
,,,& lt; div 类=皊ection", id=皊ection2"祝辞section2
,,,& lt; div 类=皊ection", id=皊ection3"祝辞section3
,,,& lt; div 类=皊ection", id=皊ection4"祝辞section4
,,,& lt; div 类=皊ection", id=皊ection5"祝辞section5
& lt;才能/div>
& lt;才能nav>
,,,& lt; https://www.yisu.com/zixun/a href=" # section1 " rel==暗鼻啊?“外部nofollow”类section1 >
section5 >
<强>页面滚动时导航定位强>
js代码如下:
var navs 美元;=,美元(& # 39;nav 一个# 39;),,,,,,,,,,,//,导航
时间=美元才能sections 美元(& # 39;.section& # 39;),,,,,,,,//,模块
时间=美元才能window 美元(窗口),
navLength 才能=,navs.length 美元;作用;1;
,,
美元window.on(& # 39;滚动# 39;,,()函数,{
var 才能;scrollTop =, window.scrollTop美元(),
,,,len =, navLength;
for 才能;(,len 祝辞,1;,len——), {
,,,var that =, sections.eq美元(len);
,,,if (scrollTop 祝辞=,that.offset直()上),{
,,,,,,美元navs.removeClass(& # 39;目前# 39;).eq (len) .addClass(& # 39;目前# 39;);
,,,,,,休息;
,,,}
,,}
});
效果如下:
不难看出,基本原理就是在窗口滚动的时候,依次将模块从后向前遍历,如果窗口的滚动高度大于或等于当前模块的距页面顶部的距离,则将当前模块对应的导航突出显示,并且不再继续遍历
<强>点击导航定位页面强>
除了这种需求外,还有另一种需求,就是点击导航定位到导航所对应模块的顶部。
代码如下:
navs.on美元(& # 39;点击# 39;,,函数(e), {
e.preventDefault才能();
美元才能(& # 39;html,,身体# 39;).animate ({
,,,& # 39;scrollTop& # 39;:,美元($(这).attr (& # 39; href # 39;)) .offset直()上
,,},400);
});
效果如下:
看完了这篇文章,相信你对“Javascript如何实现页面滚动时导航智能定位”有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!