基于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+XMLHttpRequest+asp.net无刷新读取数据库数据
Aug 09 Javascript
鼠标拖拽移动子窗体的JS实现
Feb 25 Javascript
js实现select组件的选择输入过滤代码
Oct 14 Javascript
Bootstrap实现响应式导航栏效果
Dec 28 Javascript
从零学习node.js之详解异步控制工具async(八)
Feb 27 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
Jun 02 Javascript
详解ES6 Fetch API HTTP请求实用指南
Nov 14 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
Nov 15 Javascript
使用layui前端框架弹出form表单以及提交的示例
Oct 25 Javascript
vscode 插件开发 + vue的操作方法
Jun 05 Javascript
关于angular浏览器兼容性问题的解决方案
Jul 26 Javascript
JavaScript实现多文件下载方法解析
Aug 07 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 简单日历实现代码
2009/10/28 PHP
php中global和$GLOBALS[]的分析之一
2012/02/02 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
jquery中实现简单的tabs插件功能的代码
2011/03/02 Javascript
jQuery下的动画处理总结
2013/10/10 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
js实现ctrl+v粘贴上传图片(兼容chrome、firefox、ie11)
2016/03/09 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
在vue-cli中组件通信的方法
2017/12/16 Javascript
JS实现把一个页面层数据传递到另一个页面的两种方式
2018/08/13 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
微信小程序websocket实现即时聊天功能
2019/05/21 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
numpy自动生成数组详解
2017/12/15 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
python能做哪方面的工作
2020/06/15 Python
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
自习课吵闹检讨书范文
2014/09/26 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
销售员自我评价
2015/03/11 职场文书
python基础之停用词过滤详解
2021/04/21 Python
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server