侧浮导航菜单效果的jQuery实现

单页网页内容较多,页面长度较大,需要快速、方便地定位在页面的不同位置。所以浮动菜单已经很流行了,比如男装、女装、美容化妆等等。



这个菜单功能分为两部分:

1,点击菜单项,页面滚动到相应的位置,可以简单地通过锚点实现;

2,当页面被滚动时,菜单项的选定状态应该被改变,这需要监视Web页面的滚动事件并通过一点计算来实现。



计算每个div scrollTop和offsettop之间的大小关系,确定网页的位置,并添加样式,根据计算结果对应的菜单项。例如,二div的偏移()。= 300,第三DIV的偏移()= 600。然后scrollTop = 400,这表明大部分的二div的位置是当前显示的,700是第三分以下是一个简单的例子:

复制代码代码如下所示:





1f男人的衣服

2f女人的衣服

3f美

4f数字

5f母亲和婴儿







网上购物



1f男人的衣服

















复制代码代码如下所示:

*边距:0;填充:0;}

体{字体大小:12px;线高度:1.7;}

李{列表样式:无;}

#内容{宽度:800px;保证金:0汽车;padding: 20px;}

#内容h1 {颜色:# 0088bb;}

# content.item { padding: 20px;margin-bottom: 20px;边界:1px点缀# 0088bb;}

# content.item H2 {字体大小:16px;font-weight:大胆;底部边框:2px固体# 0088bb;margin-bottom: margin-bottom:;}

# content.item李{显示:内联;右边距:10px;}

李# content.item img {宽度:230px;身高:230px;边界:无;}

#菜单{位置:固定;左:50%;margin-left: 400px;顶部:100px;}

#菜单UL Li {

显示块;

5px保证金:0;

字体大小:14px;

字体粗细:粗体;

颜色:# 333;

宽度:80px;

身高:50px;

行高:50px;

文字装饰:无;

文本对齐:中心;

}

UL Li:#菜单悬停菜单,# UL Li a.current {颜色:# FFF;背景:# 0088bb;}



复制代码代码如下所示:

$(函数(){())

$(窗口)。滚动(函数(){)

var = $(document)scrollTop。ScrollTop();

无功contentitems = $(#内容),(项目);

VaR currentItem = ;

contentitems.each(函数(){()

contentitem = $(this)功;

无功offsettop = contentitem.offset(顶部);

如果(scrollTop > offsettop-200){ / / 200视具体情况定,因为如果你不减一个数,只是在一个滚动的div菜单的边缘,例如选择状态是错误的,,就在第一页滚动到div的底部,页面已经显示出二DIV然而,菜单或第一选择

currentItem =# + contentitem。属性(ID);

}

});

如果(currentitemcurrentitem!= $(#菜单),(,),Attr(href)){

$(#菜单),(,),RemoveClass(流);

$(#菜单),({ href =+ currentItem +)),AddClass(流);

}

});

});