基于jquery实现导航菜单高亮显示(两种方法)


Posted in Javascript onAugust 23, 2015

项目需求:

实现原理:当选中当前元素时,给当前元素添加样式,同级元素移除样式。

点击不同的导航菜单实现当前点击的菜单是高亮的,点击导航下面的某个分类,分类所属的导航也必须是高亮的,点击某一篇文章,文章所属的导航菜单也必须是高亮的.

效果图如下:

基于jquery实现导航菜单高亮显示(两种方法)

示例代码一:

具体示例代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>我爱学习</title>
<style>
body,ul,ol,li,div,p{margin:0px;padding:0px;}
ul{list-style-type:none;border:1px solid blue;background:#4f5b93;height:45px;}
ul li{float:left;heihgt:45px;line-height:45px;width:100px;text-align:center;}
ul li a:link,a:visited{color:#fff;text-decoration:none;}
.act{background:#ff6600;}
</style>
<script src="../jquery.js"></script>
<script>
$(function(){
$('ul li').eq(0).addClass("act");
 $('ul li').each(function(){
  $(this).click(function(){
    $(this).addClass("act").siblings().removeClass("act");
   })
 })
})
</script>
</head>
<body>
<ul>
<li><a href="http://www.52aixuexi.com/">首页</a></li>
<li><a href="http://www.52aixuexi.com/wdwzml/suibi/">随笔</a></li>
<li><a href="http://www.52aixuexi.com/wdwzml/sucai/">素材</a></li>
<li><a href="http://www.52aixuexi.com/wdwzml/biancheng/">编程</a></li>
</ul>
</body>
</html>

示例代码二:

在菜单层的链接加上一个rel属性,保存href属性即:

<div id="menu" class="main-nav">
      <dl>
       <dt><a href="/C000001916" class="current">首页<span class="mnl"></span></a></dt>
      </dl>
      <dl>
        <dt><a href="/C000001919?lmbm=1" <span style="color: #ff0000;">rel="/C000001919?lmbm=1"</span>>新闻中心<span class="mnl"></span></a></dt>
        <dd class="sn-c">
          <a href="#">产品理念2</a>
          <em>|</em>
          <a href="#">发展历程</a>
          <em>|</em>
          <a href="#">应用范围</a>
          <em>|</em>
          <a href="#">技术架构</a>
        </dd>
      </dl>
      <dl>
        <dt><a href="/C000001919?lmbm=2" <span style="color: #ff0000;">rel="/C000001919?lmbm=2"</span>>产品介绍<span class="mnl"></span></a></dt>
        <dd class="sn-c sn3">
          <a href="#">产品理念</a>
          <em>|</em>
          <a href="#">发展历程3</a>
          <em>|</em>
          <a href="#">应用范围</a>
          <em>|</em>
          <a href="#">技术架构</a>
        </dd>
      </dl>
    </div>

然后利用浏览器地址栏中的URL和rel对比,如果相等就在当前的<a>标签加上class,同时移除其它<a>标签的class.<script type="text/javascript">

var urlstr = location.href;
//获取浏览器的url
 var urlstatus=false;



//标记
 //遍历导航div
 $("#menu a").each(function () {
//判断导航里面的rel和url地址是否相等
  if ((urlstr + '/').indexOf($(this).attr('rel')) > -1&&$(this).attr('rel')!='') {
   $(this).addClass('cur'); urlstatus = true;
  } else {
   $(this).removeClass('cur');
  }
 });
//当前样式保持
 if (!urlstatus) {$("#menu a").eq(0).addClass('cur'); }
</script>

这个也能基本实现效果,但是如果在导航下如果有分类,如图.这样分类url和导航的url就不能匹配了,然后新闻的url和导航的url也不能匹配.所以还是有点扯淡.....那怎么办呢?

所以我的思路是这样的

既然url不一样,那就找导航-->分类-->新闻之间的关系了.他们的对应关系是一个导航下可能有多个分类,一个分类下可能有多篇新闻.那么逆向的来说,每一篇新闻或者分类都对应一个导航.那么在对应的的分类页面和新闻页面都定义一个变量就是导航标识.然后修改导航<div>的<a>标签的rel属性.该属性与该变量对比,如果一样就改当前的class.

以上内容就是通过两种方式给大家介绍基于jquery实现导航菜单高亮显示,希望对大家有所帮助。

Javascript 相关文章推荐
JavaScript实现网页上的浮动广告的简单方法
Jun 14 Javascript
jquery slibings选取同级其他元素的实现代码
Nov 15 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
Jun 20 Javascript
JavaScript中伪协议 javascript:使用探讨
Jul 18 Javascript
jquery实现上下左右滑动的方法
Feb 09 Javascript
Javascript实现Array和String互转换的方法
Dec 21 Javascript
Node.js+Express配置入门教程详解
May 19 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
Oct 28 Javascript
JSON与XML的区别对比及案例应用
Nov 11 Javascript
详解在create-react-app使用less与antd按需加载
Dec 06 Javascript
微信小程序实现发送验证码按钮效果
Dec 20 Javascript
Vue SSR 即时编译技术的实现
May 06 Javascript
CSS javascript 结合实现悬浮固定菜单效果
Aug 23 #Javascript
微信JSSDK上传图片
Aug 23 #Javascript
基于jquery实现人物头像跟随鼠标转动
Aug 23 #Javascript
jquery+css实现绚丽的横向二级下拉菜单-附源码下载
Aug 23 #Javascript
jquery ajax 如何向jsp提交表单数据
Aug 23 #Javascript
纯HTML5制作围住神经猫游戏-附源码下载
Aug 23 #Javascript
javascript中Array()数组函数详解
Aug 23 #Javascript
You might like
PHP 5.0 Pear安装方法
2006/12/06 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
浅谈PHP中的那些魔术常量
2020/12/02 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
JS版网站风格切换实例代码
2008/10/06 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
jQuery实现固定在网页顶部的菜单效果代码
2015/09/02 Javascript
JavaScript 性能优化小结
2015/10/12 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
nodejs中解决异步嵌套循环和循环嵌套异步的问题
2017/07/12 NodeJs
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
创建与框架无关的JavaScript插件
2020/12/01 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
python的faker库用法
2019/11/28 Python
np.random.seed() 的使用详解
2020/01/14 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
关于探究python中sys.argv时遇到的问题详解
2021/02/23 Python
python元组拆包实现方法
2021/02/28 Python
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
Lookfantastic意大利官网:英国知名美妆购物网站
2019/05/31 全球购物
我的大学生活职业生涯规划
2014/01/02 职场文书
C++程序员求职信
2014/05/07 职场文书
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js
2022漫威和DC电影上映作品
2022/04/05 欧美动漫
python标准库ElementTree处理xml
2022/05/20 Python