两种简单实现菜单高亮显示的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 相关文章推荐
Div Select挡住的解决办法
Aug 07 Javascript
拉动滚动条加载数据的jquery代码
May 03 Javascript
javascript实现div的拖动并调整大小类似qq空间个性编辑模块
Dec 12 Javascript
JS刷新框架外页面七种实现代码
Feb 18 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
Jan 31 Javascript
Jquery操作js数组及对象示例代码
May 11 Javascript
AngularJS之依赖注入模拟实现
Aug 19 Javascript
微信小程序 Button 组件详解及简单实例
Jan 10 Javascript
AngularJS中下拉框的基本用法示例
Oct 11 Javascript
详解如何从零开始搭建Express+Vue开发环境
Jul 17 Javascript
JS实现Cookie读、写、删除操作工具类示例
Aug 28 Javascript
在微信小程序中保存网络图片
Feb 12 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 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
2010/04/28 PHP
php地址引用(php地址引用的效率问题)
2012/03/23 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
PHP CodeBase:将时间显示为&quot;刚刚&quot;&quot;n分钟/小时前&quot;的方法详解
2013/06/06 PHP
php获取数组长度的方法(有实例)
2013/10/27 PHP
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
PHP实现根据银行卡号判断银行
2015/04/29 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
PHP自定义序列化接口Serializable用法分析
2017/12/29 PHP
PHP利用百度ai实现文本和图片审核
2019/05/08 PHP
js href的用法
2010/05/13 Javascript
javascript new fun的执行过程
2010/08/05 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
2016/01/27 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
Python中的map、reduce和filter浅析
2014/04/26 Python
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
Python3 max()函数基础用法
2019/02/19 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
Html5页面点击遮罩层背景关闭遮罩层
2020/11/30 HTML / CSS
金融专业个人求职信范文
2013/11/28 职场文书
事业单位公务员的职业生涯规划
2014/01/15 职场文书
一年级班主任感言
2014/03/08 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
学生上课说话检讨书
2014/10/25 职场文书
PHP中多字节字符串操作实例详解
2021/08/23 PHP
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python