本文实例为大家分享了jQuery实现电梯导航模块的具体代码,供大家参考,具体内容如下
功能模块
1、当页面滚动到电器的模块, 显示电梯导航
2、点击电梯导航中的 li, 页面滚动到对应的内容区域
3、为当前点击的 li 添加 current 类
4、页面内容滚动到第几个区域, 左侧的电梯导航自动高亮对应的 li
5、为页面滚动设置节流阀(点击 li 时, 不进行第4步判断)
html部分结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
< ul class = "sidebar" > < li >手机模块</ li > < li >电器模块</ li > < li >产品模块</ li > < li >服装模块</ li > < li >鞋子模块</ li > </ ul > < section class = "main" > < div >手机模块</ div > < div class = "model" >电器模块</ div > < div >产品模块</ div > < div >服装模块</ div > < div >鞋子模块</ div > </ section > |
css部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
* { margin : 0 ; padding : 0 ; margin : 0 auto ; } div { width : 600px ; height : 600px ; border : 1px solid red ; } li { list-style : none ; border : 1px solid #abcdef ; cursor : pointer ; } .sidebar { display : none ; position : fixed ; left : 0 ; top : 350px ; width : 66px ; height : 200px ; } .current { background-color : red ; } |
jQuery部分
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
//节流阀开启 var flag = true //页面滚动事件 $(window).scroll( function () { // 当页面滚动到电器模块侧边栏显示 $( this ).scrollTop() >= $( '.model' ).offset().top ? $( '.sidebar' ).show() : $( '.sidebar' ).hide() // 遍历div $( '.main div' ).each( function (i, item) { if (flag == false ) { return } var Top = $(item).offset().top // 滚动的距离大于等于当前盒子离顶部的距离 if ($(window).scrollTop() >= Top) { //显示高亮 $( '.sidebar li' ).eq(i).addClass( 'current' ).siblings().removeClass( 'current' ) } }) }) //点击让li,出现在对应的位置 //绑定点击事件,获取索引,获取楼层与顶部的距离,给html添加动画 $( '.sidebar li' ).click( function () { // 节流阀关闭了 flag = false // 改变背景颜色 // 获取当前的索引值 var index = $( this ).index() // 获取当前索引位置上的盒子离顶部的距离 var top = $( 'div' ).eq(index).offset().top // 给html添加动画 $( 'html,body' ).animate({ scrollTop: top }, function () { flag = true }) //点击显示高亮 $( this ).addClass( 'current' ).siblings().removeClass( 'current' ) }) |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/weixin_38007986/article/details/111164634