两种简单实现菜单高亮显示的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简单判断复选框是否选中及取出值的方法
Aug 13 Javascript
详解javascript传统方法实现异步校验
Jan 22 Javascript
深入浅析search 搜索框的写法
Aug 02 Javascript
JavaScript日期选择功能示例
Jan 16 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
Jan 20 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
May 17 Javascript
ionic2自定义cordova插件开发以及使用(Android)
Jun 19 Javascript
webpack3之loader全解析
Oct 26 Javascript
JavaScript实现百度搜索框效果
Mar 26 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
Sep 27 Javascript
js实现同一个页面,多个enter事件绑定的示例
Oct 10 Javascript
原生JS实现飞机大战小游戏
Jun 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 rawurlencode与urlencode函数的深入分析
2013/06/08 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
2015/03/19 PHP
php通过排列组合实现1到9数字相加都等于20的方法
2015/08/03 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
PHP二维数组去重算法
2016/12/17 PHP
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
js内置对象处理_打印学生成绩单的简单实现
2016/09/24 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
微信小程序表单弹窗实例
2018/07/19 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
Python 调用PIL库失败的解决方法
2019/01/08 Python
python mysql断开重连的实现方法
2019/07/26 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
python next()和iter()函数原理解析
2020/02/07 Python
使用Tkinter制作信息提示框
2020/02/18 Python
Jupyter Notebook的连接密码 token查询方式
2020/04/21 Python
python轮询机制控制led实例
2020/05/03 Python
keras输出预测值和真实值方式
2020/06/27 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
Notino法国:购买香水和化妆品
2019/04/15 全球购物
是什么让J2EE适合用来开发多层的分布式的应用
2015/01/16 面试题
50道外企软件测试面试题
2014/08/18 面试题
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
小学生个人先进事迹材料
2014/05/08 职场文书
小学安全汇报材料
2014/08/14 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
计算机实训报告总结
2014/11/05 职场文书
初中家长意见
2015/06/03 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
python数据分析之用sklearn预测糖尿病
2021/04/22 Python
mongodb数据库迁移变更的解决方案
2021/09/04 MongoDB