当前位置:首页 > 日记 > 正文

js实现楼层导航功能

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');  }}

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

相关文章

ps怎样把人物制作成漫天飞舞的雪景

ps怎样把人物制作成漫天飞舞的雪景

雪景,效果,人物,电脑软件,ps,ps怎样把图片制作成漫天飞舞的雪景效果?运用PHOTOSHOP软件,可以很简单的制作大家想要的照片,下面和小编一起来看看具体步骤吧。最终效果图练习素材:具体步骤:1、将RAW格式的原文件在PS里打开,参数调整如下。2、打开…

excel2010开启夜间模式的方法步骤

excel2010开启夜间模式的方法步骤

方法,夜间模式,步骤,分析工具,加载,  夜间如果输入表格,太亮的话,对眼睛不好,开启夜间模式能够相对应的保护我们的眼睛。下面小编教你excel2010怎么开启夜间模式,希望对你有帮助!excel2010开启夜间模式的方法首先,我们打开excel表格,打开以后,我…

RedHat Linux 红旗9.0安装图解

RedHat Linux 红旗9.0安装图解

安装图解,红旗,电脑软件,RedHat,Linux,第1步:第一步:选择安装方式。 1、图形安装(直接回车) 2、文本安装(输入 linux text第2步:选择“OK”为检查光盘 选择“Skip"跳过检查。我确认我的光盘是好的,我跳过!第3步:这一段是费话,跳过!4步…

AngularJs定时器$interval 和 $tim

AngularJs定时器$interval 和 $tim

详解,电脑软件,AngularJs,interval,timeout,$intervalwindow.setInterval的Angular包装形式。Fn是每次延迟时间后被执行的函数。间隔函数的返回值是一个承诺。这个承诺将在每个间隔刻度被通知,并且到达规定迭代次数后被取消,如果迭代次数未定…

详解微信小程序Radio选中样式切换

详解微信小程序Radio选中样式切换

详解,样式,程序,电脑软件,微信小,详解微信小程序Radio选中样式切换本篇文章主要讲解在微信小程序中如何根据Radio选中来切换样式。效果如下:原理主要是通过判断一个radio-group中哪个被选中,就让它加上一个“active”的样式。代码如下:<!--ind…

通过学习bootstrop导航条学会修改b

通过学习bootstrop导航条学会修改b

修改,导航条,基调,学习,颜色, 通过bootstrap文档对导航条样式的设置发现,其实本身是有一个类似于主题的概念- navbar-default:默认的外观- navbar-inverse:暗色背景的样式- 所以我们希望可以通过自定义一套完整的风格:比如自定义一个颜色基调 …

jQuery实现返回顶部按钮和scroll滚

jQuery实现返回顶部按钮和scroll滚

动画效果,返回顶部,按钮,功能,电脑软件,jQuery脚本:<script type="text/javascript"> $(function() { var scrollDiv = document.createElement('div'); $(scrollDiv).attr('id', 'toTop').html('^ 返回顶部').ap…

常用正则表达式匹配代码介绍

常用正则表达式匹配代码介绍

正则表达式,常用,代码,电脑软件,正则表达式,又称正规表示法、常规表示法。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则。在很多文本编辑器…

JavaScript判断输入是否为数字类型

JavaScript判断输入是否为数字类型

类型,输入,数字,方法,电脑软件,JavaScript判断输入是否为数字类型的方法总结前言很多时候需要判断一个输入是否位数字,下面简单列举集中方法。第一种方法 isNaNisNaN  返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字)。 NaN 即…

JS实现unicode和UTF-8之间的互相转

JS实现unicode和UTF-8之间的互相转

转换,电脑软件,JS,unicode,UTF,有一设备,为短信网关。需将PC送过来的UTF-8转换成UNICODE才能将内容通过短信发送出去,同样,接收到的短信为unicode编码,也许转换成UTF-8才能在PC端软件显示出来。程序很简单,只是走了不少弯路://unicode为1个接收…

vue.js利用Object.defineProperty

vue.js利用Object.defineProperty

双向绑定,电脑软件,js,vue,defineProperty,Object.defineProperty这个方法了不起啊,vue.js是通过它实现双向绑定的。。而且Object.observe也被草案发起人撤回了。。所以defineProperty更有必要了解一下了。几行代码看他怎么用var a= {}Objec…

word2013解决中文双引号变成英文的

word2013解决中文双引号变成英文的

中文,双引号,两种,英文,技巧,  Word2013经常在输入中文双引号时,前半个双引号还是是中文格式的双引号,但在后半个双引号时就变成了英文格式的双引号,如下图所示很不协调。那么下面就由小编给大家分享下word2013中解决中文双引号变成英文双引…