• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > js实现楼层导航功能

js实现楼层导航功能

作者:开发之路 字体:[增加 减小] 来源:互联网 时间:2017-05-11

开发之路通过本文主要向大家介绍了js楼层效果,js楼层导航,js楼层跳转,楼层js,京东左侧悬浮楼层js等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

图如下所示:

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

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

  document.body.scrollTop = scrollLength; 
  document.documentElement.scrollTop = scrollLength;
</div>

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

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • js实现楼层导航功能

相关文章

  • 2017-05-11BootStrap表单宽度设置方法
  • 2017-09-02 Javascript的垃圾回收机制
  • 2017-05-11JS/jquery实现一个网页内同时调用多个倒计时的方法
  • 2017-05-11javascript中递归的两种写法
  • 2017-05-11Node.js利用debug模块打印出调试日志的方法
  • 2017-05-11JS跨域请求外部服务器的资源
  • 2017-05-11大白话讲解JavaScript的Promise
  • 2017-05-11微信小程序 向左滑动删除功能的实现
  • 2018-11-02new Date().getTime() 多8小时问题
  • 2017-05-11JS中IP地址与整数相互转换的实现代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • react实现pure render时bind(this)隐患需注意!
    • js遍历json对象所有key及根据动态key获取值的方法(必看)
    • es6的数字处理的方法(5个)
    • Avalonjs 实现简单购物车功能(实例代码)
    • canvas实现流星雨的背景效果
    • nodejs爬虫遇到的乱码问题汇总
    • 微信小程序登录态控制深入分析
    • Vue+axios 实现http拦截及路由拦截实例
    • vue.js中指令Directives详解
    • 常用的几个JQuery代码片段

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有