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 相关文章推荐
学习从实践开始之jQuery插件开发 菜单插件开发
May 03 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
May 23 Javascript
JS弹出窗口插件zDialog简单用法示例
Jun 12 Javascript
AngularJS ng-template寄宿方式用法分析
Nov 07 Javascript
jQuery实现可移动选项的左右下拉列表示例
Dec 26 Javascript
angularjs实现多张图片上传并预览功能
Feb 24 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
Jul 12 Javascript
老生常谈js中的MVC
Jul 25 Javascript
ES6学习教程之对象字面量详解
Oct 09 Javascript
React Native 图片查看组件的方法
Mar 01 Javascript
详解小程序用户登录状态检查与更新实例
May 15 Javascript
vue中input的v-model清空操作
Sep 06 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
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
PHP如何实现Unicode和Utf-8编码相互转换
2015/07/29 PHP
thinkPHP自动验证机制详解
2016/12/05 PHP
ThinkPHP实现附件上传功能
2017/04/27 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
javascript编程起步(第二课)
2007/02/27 Javascript
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
js判断鼠标同时离开两个div的思路及代码
2013/05/31 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
js 跳出页面的frameset框架示例介绍
2013/12/23 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
js实现禁止中文输入的方法
2015/01/14 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
在Python的struct模块中进行数据格式转换的方法
2015/06/17 Python
Python实现的密码强度检测器示例
2017/08/23 Python
python交互式图形编程实例(二)
2017/11/17 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
python多任务及返回值的处理方法
2019/01/22 Python
对python生成业务报表的实例详解
2019/02/03 Python
Python基于Twilio及腾讯云实现国际国内短信接口
2020/06/18 Python
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
温泉秘密:Onsen Secret
2020/07/06 全球购物
应届生船舶驾驶求职信
2013/10/19 职场文书
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
高中军训感想800字
2014/02/23 职场文书
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
2014年招生工作总结
2014/11/26 职场文书
成功的商业计划书这样写才最靠谱
2019/07/12 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python