[前端] 滚动监听导航效果
来源:互联网 发布:云校排课软件下载 编辑:程序博客网 时间: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
- [前端] 滚动监听导航效果
- iOS-UI效果之【监听滚动导航条渐隐】
- 监听导航滚动置顶
- 滚动监听导航 JQUERY 易懂
- [前端] 图片滚动效果
- JQuery实现导航效果、新闻滚动、广告效果、横向滚动
- JQuery实现导航效果、新闻滚动、广告效果、横向滚动
- JQuery实现导航效果、新闻滚动、广告效果、横向滚动
- Jquery单页全屏滚动效果 导航
- 鼠标滚动事件,侧边导航js效果
- JQ带滚动效果的导航条
- [前端] 文字垂直滚动+鼠标悬停效果
- web前端(001_滚动效果)
- bootstrap 导航适配屏幕+滚动监听+JQuery删除块
- jQuery滚动监听,实现商城楼梯式导航
- 移动端的导航栏联动(滚动监听)
- JQUEYR 实现导航滚动监听简单实现方式
- jQuery滚动监听,实现商城楼梯式导航、滚动监听根据滚动条所处的位置来自动更新导航项
- 预备知识 cstring的定义及操作函数
- iOS中编译FFMpeg和使用FFMpeg的播放器
- JavaScript作用域之我见
- 数据结构第五章--数组和广义表
- 用户·角色·权限·表
- [前端] 滚动监听导航效果
- Android之AIDL实例讲解
- Spring mvc详解 (上)
- android 带倒计时效果的Button
- 六大身边的生活场景 看令你震惊的大数据
- http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html
- 虚函数表解析
- 《C++语言基础》程序阅读——运算符重载(一)
- 粒子系统 & ParticleDesiner 配置