两种简单实现菜单高亮显示的JS类代码


Posted in Javascript onJune 27, 2010

记得当年写静态页时,为了实现高亮都是在每个页面加不同的样式,呵.高亮显示我觉得对于web前端来说,是比较常用到的效果,正好此次又要用到,特地整理出我所写的两种高亮类.

其实思路很简单,第一种方法是通过遍历链接组的href值,通过indexOf判断href值是否被包含在浏览器当前url值中.此方法有一定局限,比如对于iframe内的菜单是不能这样判断的; 第二种方法适用范围更广一样,实现思路也比较简单,即通过判断点击,给点击项加载高亮样式.

第一种判断当前URL值高亮类代码:

//@Mr.Think---判断URL实现菜单高亮显示 
function highURL(menuId,classCur){ 
if(!document.getElementById) return false; 
if(!document.getElementById(menuId)) return false; 
if(!document.getElementsByTagName) return false; 
var menuId=document.getElementById(menuId); 
var links=menuId.getElementsByTagName("a"); 
for(var i=0; i<links.length; i++ ){ 
var menuLink=links[i].href; 
var currentLink=window.location.href; 
if(currentLink.indexOf(menuLink)!=-1){ 
links[i].className=classCur; 
} 
} 
}

参数说明:

1.menuId : 链接组所在ID;
2.classCur : 高亮显示时的样式class名.
调用方法:

window.onload=function highThis(){highURL("youId","youhighclass");}
第二种点击后高亮显示当前类:

//@Mr.Think---点击实现高亮显示 
function highOnclick(elemId,classCur) { 
if (!document.getElementsByTagName) return false; 
if (!document.getElementById) return false; 
if (!document.getElementById(elemId)) return false; 
var elemId = document.getElementById(elemId); 
var links = elemId.getElementsByTagName("a"); 
for (i = 0; i < links.length; i++) { 
links[i].onclick = function() { 
for (n = 0; n < links.length; n++) { 
links[n].className = ""; 
this.className = classCur; 
this.blur(); 
} 
} 
} 
}

参数说明:

1.elemId : 链接组所在ID;
2.classCur : 点击后显示的样式class名.
调用方法:

window.onload=function highThis(){highOnclick("youId","youhighclass");}
此方法扩展性较强,比如可以通过判断parentNode.nodeName值来使某一类型链接不被遍历,等等.
源码下载及演示
鉴于有朋友不知道如何使用,我特地整理了一下我之前写的与这个类有关的页面,给一个DEMO页面和下载地址,需要的朋友可以查看或下载.

打包下载地址

Javascript 相关文章推荐
JavaScript对象反射用法实例
Apr 17 Javascript
jQuery实现弹出窗口中切换登录与注册表单
Jun 05 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
Nov 24 Javascript
详解Wondows下Node.js使用MongoDB的环境配置
Mar 01 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
Dec 30 Javascript
利用JS做网页特效_大图轮播(实例讲解)
Aug 09 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
Aug 30 Javascript
vue项目持久化存储数据的实现代码
Oct 01 Javascript
微信小程序实现商品属性联动选择
Feb 15 Javascript
Vue-Cli项目优化操作的实现
Oct 27 Javascript
Nuxt 项目性能优化调研分析
Nov 07 Javascript
五句话帮你轻松搞定js原型链
Dec 09 Javascript
用apply让javascript函数仅执行一次的代码
Jun 27 #Javascript
验证javascript中Object和Function的关系的三段简单代码
Jun 27 #Javascript
jQuery选择头像并实时显示的代码
Jun 27 #Javascript
Javascript匿名函数的一种应用 代码封装
Jun 27 #Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
Jun 25 #Javascript
让IE6支持min-width和max-width的方法
Jun 25 #Javascript
jQuery与其它库冲突的解决方法
Jun 25 #Javascript
You might like
PHP Token(令牌)设计
2008/03/15 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
php加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
php中switch语句用法详解
2015/08/17 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
2020/02/12 PHP
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
基于DOM节点删除之empty和remove的区别(详解)
2017/09/11 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
JavaScript简易计算器制作
2020/01/17 Javascript
antd Select下拉菜单动态添加option里的内容操作
2020/11/02 Javascript
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
Python设计实现的计算器功能完整实例
2017/08/18 Python
TensorFlow实现RNN循环神经网络
2018/02/28 Python
python实现剪切功能
2019/01/23 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
如何在mac环境中用python处理protobuf
2019/12/25 Python
python 读取.nii格式图像实例
2020/07/01 Python
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
台湾母婴用品限时团购:妈咪爱
2018/08/03 全球购物
物业管理公司实习生自我鉴定
2013/09/19 职场文书
《和我们一样享受春天》教学反思
2014/02/07 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
2014年基层党支部工作总结
2014/12/04 职场文书
护士自荐信怎么写
2015/03/06 职场文书
离婚财产分割协议书
2015/08/11 职场文书
Pyhton爬虫知识之正则表达式详解
2022/04/01 Python