基于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 正则替换 replace(regExp, function)用法
May 22 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
May 12 Javascript
javascript实现yield的方法
Nov 06 Javascript
javascript字母大小写转换的4个函数详解
May 09 Javascript
jQuery照片伸缩效果不影响其他元素的布局
May 09 Javascript
一个js过滤空格的小函数
Oct 10 Javascript
浅谈Angular6的服务和依赖注入
Jun 27 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
Dec 09 Javascript
layui 弹出层回调获取弹出层数据的例子
Sep 02 Javascript
Vue export import 导入导出的多种方式与区别介绍
Feb 12 Javascript
js瀑布流布局的实现
Jun 28 Javascript
vue elementUI批量上传文件
Apr 26 Vue.js
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类的扩展和继承用法实例
2015/06/20 PHP
php pthreads多线程的安装与使用
2016/01/19 PHP
flash javascript之间的通讯方法小结
2008/12/20 Javascript
JavaScript 继承详解(二)
2009/07/13 Javascript
javascript 运算数的求值顺序
2011/08/23 Javascript
js change,propertychange,input事件小议
2011/12/20 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
js检验密码强度(低中高)附图
2014/06/05 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
Vue中使用vee-validate表单验证的方法
2018/05/09 Javascript
关于vue的语法规则检测报错问题的解决
2018/05/21 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
Zabbix实现微信报警功能
2016/10/09 Python
python通过zabbix api获取主机
2018/09/17 Python
python版百度语音识别功能
2019/07/09 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
应届大学生自荐信
2013/12/05 职场文书
户外活动策划方案
2014/03/12 职场文书
党支部特色活动方案
2014/08/20 职场文书
国家领导干部党的群众路线教育实践活动批评与自我批评材料
2014/09/23 职场文书
军训决心书范文
2015/09/22 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书