[前端] 滚动监听导航效果

来源:互联网 发布:云校排课软件下载 编辑:程序博客网 时间:2024/06/05 07:40

一、依赖:引用jQuery框架

二、要点:$(window).scroll(function() { // 判断$(this).scrollTop()的滚动高度是否大于某个div的距顶高度 });

三、代码:

<!DOCTYPE HTML><html> <head>  <title>导航定位</title>  <meta charset="utf-8">  <meta name="Generator" content="EditPlus">  <meta name="Author" content="">  <meta name="Keywords" content="">  <meta name="Description" content="">  <script src="jquery.min.js"></script> </head>   <style type="text/css">      * {         margin:0px;         padding:0px;         font-family:'微软雅黑';      }      div {         height:400px;         border:1px solid red;         width:600px;      }      ul {         overflow:hidden;         position:fixed;         top:300px;         left:650px;      }      li {         width:40px;         height:40px;         background:#3F883E;         text-align:center;         line-height:40px;         color:#fff;         ,font-size:18px;         cursor:pointer;         border-bottom:1px solid #fff;      }      li.active {         width: 38px;         height: 38px;         margin-bottom: 1px;         border: 1px solid #3F883E;         background: #fff;         color: #666;      }   </style> <body>   <div class="div1">段落1</div>   <div class="div2">段落2</div>   <div class="div3">段落3</div>   <div class="div4">段落4</div>   <div class="div5">段落5</div>   <div class="div6">段落6</div>   <div class="div7">段落7</div>   <ul>      <li class="li1 active">1</li>      <li class="li2">2</li>      <li class="li3">3</li>      <li class="li4">4</li>      <li class="li5">5</li>      <li class="li6">6</li>      <li class="li7">7</li>   </ul>      <script type="text/javascript">   /* 滚动监听 */      // 定义一个获取所有div的距离高度      var arrOffsetTop = [         $('.div1').offset().top,         $('.div2').offset().top,         $('.div3').offset().top,         $('.div4').offset().top,         $('.div5').offset().top,         $('.div6').offset().top,         $('.div7').offset().top      ];      // 获取每个div的平均高度      var fTotalHgt = 0;      for(var i=0; i<$('div').length; i++) {         fTotalHgt += $('div').eq(i).outerHeight();      }      var fAverageHgt = parseFloat(fTotalHgt / $('div').length);      // 滚动事件(每次滚动都做一次循环判断)      $(window).scroll(function() {         for(var i=0; i<$('div').length; i++) {            if($(this).scrollTop() > arrOffsetTop[i] - fAverageHgt) {  // 减去一个固定值,是定位准确点               $('ul li').eq(i).addClass('active').siblings().removeClass('active');            }         }      });   /* 点击事件 */      $('ul li').click(function() {         $(this).addClass('active').siblings().removeClass('active');         $('body, html').animate({scrollTop: arrOffsetTop[$(this).index()]}, 500);      });   </script> </body></html>
四、效果图:


总结:

这是一个滚动监听事件效果,附加一个点击监听,仅供参考,复制可用

如果疑问,敬请留言,以便解决。

谢谢关注!


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 太辣了辣得胃疼怎么办 出现连接问题或mmi码无效怎么办 存折丢了怎么办卡号也不记得了 车内皮子被烂苹果腐蚀有印怎么办 锅被腐蚀后变黑色应该怎么办 后厨炉灶里的炉芯进水了怎么办 小儿九个月老是流黄鼻子该怎么办 肉炖的老了不烂怎么办 吃了凉东西现在一直打嗝应该怎么办 喝了很多水还是觉得口渴怎么办 刚买的猪肝没洗直接炒了怎么办 四个多月的宝宝吃了脏东西怎么办 狗吃了脏东西拉稀呕吐怎么办 五个月宝宝怕吃药导致奶不喝怎么办 蒸锅锅盖吸住了怎么办锅比锅盖要大 豇豆没熟孕妇吃了中毒怎么办 孩子积食拉不出粑粑憋的直哭怎么办 2岁宝宝总是半夜拉粑粑怎么办 金毛拉很臭的稀粑粑怎么办 点餐系统登录后没有菜单怎么办? 环亚在线微交易亏了钱怎么办 钢管舞报了教练班觉得学不会怎么办 微信上聊天被外国人给骗了该怎么办 微信冒充朋友骗走我钱怎么办 凉皮调料水鸡精味精放多了怎么办 吃了地屈孕酮后月经不干不净怎么办 藕片用热水炒后变色了怎么办? 外汇延期收款忘了报告了怎么办 怀孕不小心吃了马生菜怎么办 高压锅的皮圈很容易坏是怎么办 华为应用市场账号密码忘记了怎么办 业主对我们提出批评意见时怎么办 向环保局投诉被公司发现了怎么办 在政务大厅上班被群众投诉怎么办 政府下发的文件通知不履行该怎么办 给私人老板开车不给工资怎么办 给个体老板开车不给工资怎么办 户口转走在人才市场的档案怎么办 外来媳妇转上海户口没有档案怎么办 公务员考试笔试差9分面试怎么办 想从事人事方面的工作没经验怎么办