基于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 相关文章推荐
Jquery 扩展方法
May 06 Javascript
jquery之empty()与remove()区别说明
Sep 10 Javascript
JQUBar 基于JQUERY的柱状图插件
Nov 23 Javascript
JQuery扩展插件Validate 3通过参数设置错误信息
Sep 05 Javascript
jQuery弹性滑动导航菜单实现思路及代码
May 02 Javascript
浅谈javascript中for in 和 for each in的区别
Apr 23 Javascript
jQuery实现自定义右键菜单的树状菜单效果
Sep 02 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
Jan 26 Javascript
jQuery Raty 一款不错的星级评分插件
Aug 24 Javascript
基于node.js实现微信支付退款功能
Dec 19 Javascript
浅谈Webpack核心模块tapable解析
Sep 11 Javascript
解决Vue大括号字符换行踩的坑
Nov 09 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
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
PHP学习记录之数组函数
2018/06/01 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
BootStrapTable 单选及取值的实现方法
2017/01/10 Javascript
bootstrap中的 form表单属性role=&quot;form&quot;的作用详解
2017/01/20 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
Vue下滚动到页面底部无限加载数据的示例代码
2018/04/22 Javascript
JS实现的贪吃蛇游戏案例详解
2019/05/01 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
vant实现购物车功能
2020/06/29 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
Numpy之文件存取的示例代码
2018/08/03 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
pycharm无法导入本地模块的解决方式
2020/02/12 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
eharmony澳大利亚:网上约会服务
2020/02/29 全球购物
电子商务专员岗位职责
2013/12/11 职场文书
《雾凇》教学反思
2014/02/17 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
小学班级特色活动方案
2014/08/31 职场文书
公司授权委托书样本
2014/09/15 职场文书
乐山大佛导游词
2015/02/02 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书