jQuery网页定位导航特效实现方法


Posted in Javascript onDecember 19, 2016

本文实例讲述了jQuery网页定位导航特效实现方法。分享给大家供大家参考,具体如下:

描述:左右联动的导航,非常适合展示页面内容多,区块划分又很明显的,点击右边固定导航项时,左边的内容跟着切换。滑动滚动条的时候,右边的导航也随着左边的展示而进行高亮切换。

思路:比较滚动距离和楼层距离(相对于顶部),如果滚动距离大于等于楼层距离,即进入了相应楼层,然后通过一个变量来记录该楼层的信息,最后传递给右边高亮显示

1.点击右边固定导航项时,左边的内容跟着切换。

只需将右边a的href设置为左边区块的id加上#即可

2.滑动滚动条的时候,右边的导航也随着左边的展示而进行高亮切换。

核心代码如下:

$(function(){
  $(window).on("scroll",function(e){
    var $floor=$("li[id^=floor]");
    var $nav=$(".mui-lift-nav");
    var floorId="";
    var scrollTop=$(this).scrollTop();
    $floor.each(function(index,Ele){ //index是每个楼层的索引,Ele是每个楼层节点的dom元素对象(这个对象是原生对象,不是jquery对象)
      var offsetTop=$(Ele).offset().top; //Ele给它一层封装,必须加个美元符号,才能把它转换为jquery对象
      if(scrollTop>=offsetTop){
        floorId="#"+$(this).attr("id");
      }else{
        return false;
      }
    });
    $nav.filter("[href="+floorId+"]").addClass("mui-lift-cur-nav").siblings().removeClass("mui-lift-cur-nav");   //filter方法可以在一个集合里筛选出所要的元素
    if(scrollTop<$floor.first().offset().top ||scrollTop>$floor.last().offset().top+$floor.last().height()){
      $nav.removeClass("mui-lift-cur-nav");
    }
  });
})

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
extjs DataReader、JsonReader、XmlReader的构造方法
Nov 07 Javascript
jQuery表单验证插件formValidator(改进版)
Feb 03 Javascript
再谈javascript面向对象编程
Mar 18 Javascript
jQuery统计上传文件大小的方法
Jan 24 Javascript
js判断是否按下了Shift键的方法
Jan 27 Javascript
js 声明数组和向数组中添加对象变量的简单实例
Jul 28 Javascript
angularjs使用directive实现分页组件的示例
Feb 07 Javascript
AngularJs+Bootstrap实现漂亮的计算器
Aug 10 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
Jan 10 Javascript
WEEX环境搭建与入门详解
Oct 16 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
Mar 10 Javascript
JS代码简洁方式之函数方法详解
Jul 28 Javascript
关于微信上网页图片点击全屏放大效果
Dec 19 #Javascript
详解jQuery lazyload 懒加载
Dec 19 #Javascript
JS实现滑动门效果的方法详解
Dec 19 #Javascript
jQuery纵向导航菜单效果实现方法
Dec 19 #Javascript
简单理解js的冒泡排序
Dec 19 #Javascript
JS瀑布流实现方法实例分析
Dec 19 #Javascript
移动端日期插件Mobiscroll.js使用详解
Dec 19 #Javascript
You might like
php中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
thinkphp3.2.3 分页代码分享
2016/07/28 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
Bootstrap每天必学之轮播(Carousel)插件
2016/04/25 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
2019/11/14 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
用Python进行基础的函数式编程的教程
2015/03/31 Python
python实现的简单猜数字游戏
2015/04/04 Python
python使用pil生成图片验证码的方法
2015/05/08 Python
Python聊天室实例程序分享
2016/01/05 Python
详解python的几种标准输出重定向方式
2016/08/15 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
用pandas按列合并两个文件的实例
2018/04/12 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
python multiprocessing多进程变量共享与加锁的实现
2019/10/02 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
开会迟到检讨书
2014/01/08 职场文书
《画风》教学反思
2014/04/16 职场文书
民间借贷被告代理词
2015/05/23 职场文书
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python
Spring Data JPA框架持久化存储数据到数据库
2022/04/28 Java/Android