栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

jquery实现网页定位导航

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jquery实现网页定位导航

不知道大家有没有注意到有的网页由于页面信息量太大所以使用了页面定位导航来实现跳转,点击旁边的菜单的某一项页面就跳到那一项对应的内容,而且我们滚动滚动条,当滚动到某一项内容,旁边菜单对应的那一项也会高亮显示。今天我就来讲讲这样的效果是如何实现的。 

先贴上显示效果: 



实现: 
这个的页面布局很简单,大家下去多试试就OK了,值得注意的是需要在菜单布局里的每一个li里面添加a标签并且给a标签的 href 赋上对应的id号,可以让其点击立即跳到id对应的内容 

然后就是jquery是如何实现的: 

1.我们需要使用$(document).scrollTop()获取滚动条相对顶部的高度

 2.通过$('#content').find('.item')[index].offset().top获取每一块内容相对顶部的高度(我是在id为content的div里包含了5个class为item的div,每个item对应一个板块的内容) 

3.然后比较每一个板块的$(document).scrollTop()是否大于$('#content').find('.item')[index].offset().top,若大于说明页面已经来到了对应板块。 

4.最后通过removeClass移除之前的高亮,给对应项添加addClass增加高亮 

代码: 

下面是我写的具体的demo,供大家参考:
 index.html 




 
 网页定位导航
 


 
 
  • 1F 男装
  • 2F 女装
  • 3F 美妆
  • 4F 数码
  • 5F 生活
XX购物网 1F 男装
2F 女装
3F 美妆
4F 数码
5F 生活
style.css *{ margin: 0; padding: 0; } body{ font-size: 12px; line-height: 1.7; } li{ list-style: none; } #content{ width: 800px; margin: 0 auto; padding: 20px; } #content h1{ color: #0088bb; } #content .item{ padding: 20px; margin-bottom: 20px; border: 1px dotted #0088bb; } #content .item h2{ font-size: 16px; font-weight: bold; border-bottom: 2px solid #0088bb; margin-bottom: 10px; } #content .item ul{ width: 740px; margin: 0 auto; } #content .item li{ display: inline; margin-right: 10px; } #content .item li a img{ width: 230px; height: 230px; border: none; } #menu{ position: fixed; top: 100px; left: 50%; margin-left: 400px; width: 80px; } #menu ul li a{ display: block; margin: 5px 0; font-size: 14px; font-weight: bold; color: #333; width: 80px; height: 50px; line-height: 50px; text-decoration: none; text-align: center; } #menu ul li a:hover, #menu ul li a.current{ color: #fff; background: #0088bb; } * html, * html body { background-image: url(about:blank); background-attachment: fixed; } * html #menu { position: absolute; top: expression(((e=document.documentElement.scrollTop)?e:document.body.scrollTop)+100+'px'); } script.js $(document).ready(function () { //监听滚动条 $(window).scroll(function () { //获取滚动条到顶部的距离 var top = $(document).scrollTop(); var menu = $('#menu'); var items = $('#content').find('.item'); var currentId = "";//当前所在的楼层是(item) id items.each(function(){ var s = $(this); //获取item到顶部的距离 即各个楼层到顶部的距离 var itemTop = s.offset().top; //判断滚动条到顶部的距离是否大于item到顶部的距离,大于则说明当前页面已经显示到了当前item即楼层 if(top > itemTop-200){ //取到当前楼层 currentId = "#" + s.attr("id"); }else{ return false; } }); //给相应楼层的a设置current,取消其他链接的current var currentlink = menu.find(".current"); //判断currentId是否有值,当前有current的item是否等于要添加current的item,有就不必改变,没有就更改item的current,current是显示高亮的css类 if(currentId && currentlink.attr("href") != currentId ){ //移除有高亮的 currentlink.removeClass('current'); //添加当前页面显示楼层对应的菜单选项的高亮 menu.find("[href=" + currentId +"]").addClass('current'); } }); });

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/94706.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号