基于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实现输入框获取焦点消失文字
Apr 27 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
Nov 23 Javascript
jQuery简单实现两级下拉菜单效果代码
Sep 15 Javascript
JS组件Bootstrap Select2使用方法详解
Apr 17 Javascript
微信小程序 九宫格实例代码
Jan 21 Javascript
利用原生JS与jQuery实现数字线性变化的动画
Feb 24 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
May 04 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
Aug 08 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
Apr 08 Javascript
微信小程序音乐播放器开发
Nov 20 Javascript
node.js基础知识汇总
Aug 25 Javascript
Nuxt.js 静态资源和打包的操作
Nov 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
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
javascript来定义类的规范小结
2010/11/19 Javascript
JavaScript中获取鼠标位置相关属性总结
2014/10/11 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
JS实现回到页面顶部动画效果的简单实例
2016/05/24 Javascript
关于JSON与JSONP简单总结
2016/08/16 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
浅谈vue.js中v-for循环渲染
2017/07/26 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
2019/12/20 Javascript
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
python paramiko实现ssh远程访问的方法
2013/12/03 Python
Python爬取读者并制作成PDF
2015/03/10 Python
python插入数据到列表的方法
2015/04/30 Python
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
python从入门到精通(DAY 3)
2015/12/20 Python
python实现教务管理系统
2018/03/12 Python
Django跨域请求问题的解决方法示例
2018/06/16 Python
python批量下载抖音视频
2019/06/17 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
python入门之基础语法学习笔记
2020/02/08 Python
巧用 CSS3的webkit-box-reflect 倒影实现各类动效
2021/03/05 HTML / CSS
html5菜单折纸效果
2014/04/22 HTML / CSS
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
大三自我鉴定范文
2013/10/05 职场文书
创业计划书的主要内容有哪些
2014/01/29 职场文书
应届毕业生简历自我评价
2014/01/31 职场文书
美丽家庭事迹材料
2014/05/03 职场文书
老干部工作先进事迹
2014/08/17 职场文书
2015年测量员工作总结
2015/05/23 职场文书
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android