两种简单实现菜单高亮显示的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 相关文章推荐
js常用函数 不错
Sep 08 Javascript
jquery 列表双向选择器之改进版
Aug 09 Javascript
jQuery插件jquery-barcode实现条码打印的方法
Nov 25 Javascript
JavaScript File API实现文件上传预览
Feb 02 Javascript
bootstrap配合Masonry插件实现瀑布式布局
Jan 18 Javascript
微信小程序实战之登录页面制作(5)
Mar 30 Javascript
jQuery导航条固定定位效果实例代码
May 26 jQuery
JS查找数组中重复元素的方法详解
Jun 14 Javascript
微信小程序之选项卡的实现方法
Sep 29 Javascript
VUE Error: getaddrinfo ENOTFOUND localhost
May 03 Javascript
js实现动态添加上传文件页面
Oct 22 Javascript
uniapp开发小程序的经验总结
Apr 08 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
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
PHP生成唯一订单号
2015/07/05 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
Knockout text绑定DOM的使用方法
2013/11/15 Javascript
浅析Node.js的Stream模块中的Readable对象
2015/07/29 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
原来JS还可以这样拆箱转换详解
2019/02/01 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
vue+ESLint 配置保存 自动格式化代码
2020/03/17 Javascript
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python多线程扫描端口示例
2014/01/16 Python
深入浅析python 中的匿名函数
2018/05/21 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
基于python3实现倒叙字符串
2020/02/18 Python
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
职称评定个人总结
2015/03/05 职场文书
遗愿清单观后感
2015/06/09 职场文书
运动会闭幕式通讯稿
2015/07/18 职场文书
2015年高中班级工作总结
2015/07/21 职场文书
中学图书馆工作总结
2015/08/11 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
Python pygame实现中国象棋单机版源码
2021/06/20 Python