js实现楼层导航功能


Posted in Javascript onFebruary 23, 2017

图如下所示:

js实现楼层导航功能

1.点击跳转到相应区域:

页面scroll掉的距离 = 目标板块在文档中的垂直坐标 - 起始板块(目标位置)到视图顶部的距离;

document.body.scrollTop = scrollLength; 

document.documentElement.scrollTop = scrollLength;

2.滚动滚动条时对应的导航链接被激活

每个板块的导航链接对应一个长度区间,当滚动条滚动调的长度落在该区间时,该导航条则被选中。区间范围为当前板块的scrollTop值(包含)~下一板块的ScrollTop值(不包含)。

例如:第一板块的区间为0~第二板块的scrollTop值(即第一板块的高度),当滚动条滚动的距离落在该区间时,则第一个链接激活。

如何确定区间?将链接倒叙排列,依次循环判断,第一个(滚动条滚动的距离>区间最小值)成立的链接即为激活链接。

var currIndex=0;
window.onscroll = function () {
var $cptop = $('.cp-top');

var scrollLength = document.documentElement.scrollTop || document.body.scrollTop; //滚动条滚动的距离

var list_area = _.map($('#area li.group'), function (item, index) {



return { top: item.offset().top, index: index };
 
}); //所有的板块
 
list_area = _.sortBy(list, function (item) { return -item.index; }); //倒序

var reachedArea = _.find(list_area, function (item) {
 

return scrollLength >= item.top;
 
});

//滚动的距离大于该区间的最小top值

if (currIndex != reachedArea.index) {



currIndex = reachedArea.index;



$(".navField li").removeClass('selected');



$(".navField li").eq(reachedField.index).addClass('selected');

}
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JAVASCRIPT下判断IE与FF的比较简单的方式
Oct 17 Javascript
javascript 操作Word和Excel的实现代码
Oct 26 Javascript
js 输出内容到新窗口具体实现代码
May 31 Javascript
Javascript Ajax异步读取RSS文档具体实现
Dec 12 Javascript
浅谈javascript六种数据类型以及特殊注意点
Dec 20 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
Aug 26 Javascript
JSON遍历方式实例总结
Dec 07 Javascript
简介AngularJS中$http服务的用法
Feb 06 Javascript
jQuery插件实现文字无缝向上滚动效果代码
Feb 25 Javascript
JavaScript数据结构之二叉树的删除算法示例
Apr 13 Javascript
vue实现tab切换外加样式切换方法
Mar 16 Javascript
如何基于js判断浏览器版本
Feb 20 Javascript
jQuery点击头像上传并预览图片
Feb 23 #Javascript
jQuery事件与动画基础详解
Feb 23 #Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
Feb 23 #Javascript
解析Vue2.0双向绑定实现原理
Feb 23 #Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
Feb 23 #Javascript
js获取浏览器和屏幕的各种宽度高度
Feb 22 #Javascript
基于JS实现移动端向左滑动出现删除按钮功能
Feb 22 #Javascript
You might like
linux下实现定时执行php脚本
2015/02/13 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
2016/10/18 PHP
Yii框架批量插入数据扩展类的简单实现方法
2017/05/23 PHP
JS面向对象编程之对象使用分析
2010/08/19 Javascript
浅析js中2个等号与3个等号的区别
2013/08/06 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
JavaScript调用客户端Java程序的方法
2015/07/27 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
代码详解django中数据库设置
2019/01/28 Python
Python元组知识点总结
2019/02/18 Python
python实现简单加密解密机制
2019/03/19 Python
Python使用Pickle模块进行数据保存和读取的讲解
2019/04/09 Python
python调用摄像头拍摄数据集
2019/06/01 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
html5关于外链嵌入页面通信问题(postMessage解决跨域通信)
2020/07/20 HTML / CSS
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
Clarins娇韵诗美国官网:法国天然护肤品牌
2016/09/26 全球购物
丝芙兰中国官方商城:SEPHORA中国
2018/01/10 全球购物
英国女性时尚品牌:Apricot
2018/12/04 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
户外亲子活动策划方案
2014/02/07 职场文书
技校毕业生自荐书
2014/05/23 职场文书
火箭队口号
2014/06/18 职场文书
会计学习心得体会
2014/09/09 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
小学毕业感言200字
2015/07/30 职场文书
你有一份《诚信考试承诺书》待领取
2019/11/13 职场文书
Python 全局空间和局部空间
2022/04/06 Python