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实现的分页函数
Dec 22 Javascript
在Javascript中定义对象类别
Dec 22 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
Aug 15 Javascript
js中继承的几种用法总结(apply,call,prototype)
Dec 26 Javascript
jquery实现的代替传统checkbox样式插件
Jun 19 Javascript
JavaScript获得url查询参数的方法
Jul 02 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
Feb 07 Javascript
AngularJS的$location使用方法详解
Oct 19 Javascript
Node 升级到最新稳定版的方法分享
May 17 Javascript
vue组件实践之可搜索下拉框功能
Nov 25 Javascript
Vue页面跳转传递参数及接收方式
Sep 09 Javascript
微信小程序轮播图swiper代码详解
Dec 01 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
PHP mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
通用PHP动态生成静态HTML网页的代码
2010/03/04 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
php基于curl扩展制作跨平台的restfule 接口
2015/05/11 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
Javascript 网页黑白效果实现代码(兼容IE/FF等)
2010/04/23 Javascript
jquery图片上下tab切换效果
2011/03/18 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
js单例模式的两种方案
2013/10/22 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
2016/02/16 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
前端构建工具之gulp的语法教程
2017/06/12 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
GOJS+VUE实现流程图效果
2018/12/01 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
2019/03/29 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
Python文件和流(实例讲解)
2017/09/12 Python
使用Python 正则匹配两个特定字符之间的字符方法
2018/12/24 Python
python+selenium 鼠标事件操作方法
2019/08/24 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
tensorflow的ckpt及pb模型持久化方式及转化详解
2020/02/12 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
入党自我鉴定
2014/03/25 职场文书
公司运动会策划方案
2014/05/25 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
行政上诉状范文
2015/05/23 职场文书
志愿服务心得体会
2016/01/15 职场文书
Matplotlib可视化之添加让统计图变得简单易懂的注释
2021/06/11 Python