源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

jQuery 实现侧边浮动导航菜单效果

  • 时间:2021-12-30 13:05 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:jQuery 实现侧边浮动导航菜单效果
单页面网页内容较多,页面长度较大,需要方便快速的在页面的不同位置进行定位,所以浮动菜单逐渐流行了起来,如下图 男装、女装、美妆等。 [img]http://files.jb51.net/file_images/article/201412/201412261048435.png[/img] 这种菜单功能分为两部分: 1、点击菜单项,网页滚动到对应位置,可简单通过锚点实现; 2、滚动页面的时候,菜单项的选中状态要跟着改变,这就需要监听网页的滚动事件并通过一点计算来实现了; [img]http://files.jb51.net/file_images/article/201412/201412261048436.png[/img] 计算 scrollTop 和 各个 div 的 offsetTop 的大小关系,判断现在网页显示的位置在什么地方,再根据计算的结果给对应的菜单项添加样式。比如第二个 div 的 offset().top = 300, 第三个 div 的offset().top = 600,此时的 scrollTop = 400,说明现在显示的大部分是第二个 div 的位置,700 则是第三个 div。下面是一个简单的例子:
[url=#item1]         <li><a href="#item2">2F 女装</a></li>         <li><a href="#item3">3F 美妆</a></li>         <li><a href="#item4">4F 数码</a></li>         <li><a href="#item5">5F 母婴</a></li>     </ul> </div> <div id="content">     <h1>网购</h1>     <div id="item1" class="item">         <h2>1F 男装</h2>         <ul>             <li><a href="#"><img src="" alt=""/></a></li>             <!-- 若干个li -->         </ul>     </div>     <!-- 若干个item--> </div>
[u]复制代码[/u] 代码如下:
    $(function(){            $(window).scroll(function(){                var scrollTop = $(document).scrollTop();                var contentItems = $("#content").find(".item");                var currentItem = "";                contentItems.each(function(){                    var contentItem = $(this);                    var offsetTop = contentItem.offset().top;                    if(scrollTop > offsetTop-200){//此处的200视具体情况自行设定,因为如果不减去一个数值,在刚好滚动到一个div的边缘时,菜单的选中状态会出错,比如,页面刚好滚动到第一个div的底部的时候,页面已经显示出第二个div,而菜单中还是第一个选项处于选中状态                        currentItem = "#" + contentItem.attr("id");                    }                                  });                if(currentItem&¤tItem!=$("#menu").find(".current").attr("href")){                    $("#menu").find(".current").removeClass("current");                    $("#menu").find("[href=" + currentItem + "]").addClass("current");                }            });        });
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部