两种简单实现菜单高亮显示的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 相关文章推荐
jquery tools系列 expose 学习
Sep 06 Javascript
JavaScript 内置对象属性及方法集合
Jul 04 Javascript
理解Javascript_05_原型继承原理
Oct 13 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
Jan 31 Javascript
JavaScript实现简单的二级导航菜单实例
Apr 15 Javascript
浅谈javascript实现八大排序
Apr 27 Javascript
Zabbix添加Node.js监控的方法
Oct 20 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
Jul 11 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
May 09 Javascript
angularjs http与后台交互的实现示例
Dec 21 Javascript
20道JS原理题助你面试一臂之力(必看)
Jul 22 Javascript
vue特效之翻牌动画
Apr 20 Vue.js
用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 zend 相对路径问题
2009/01/12 PHP
《PHP编程最快明白》第七讲:php图片验证码与缩略图
2010/11/01 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
解析php中的fopen()函数用打开文件模式说明
2013/06/20 PHP
php+ajax导入大数据时产生的问题处理
2014/06/11 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
php实现面包屑导航例子分享
2015/12/19 PHP
PDO::getAttribute讲解
2019/01/28 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
2019/10/11 PHP
JavaScript中的事件处理
2008/01/16 Javascript
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
基于Jquery的淡入淡出的特效基础练习
2010/12/13 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
window.onload使用指南
2015/09/13 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
基于javascript代码检测访问网页的浏览器呈现引擎、平台、Windows操作系统、移动设备和游戏系统
2015/12/03 Javascript
nodejs基础应用
2017/02/03 NodeJs
javascript 组合按键事件监听实现代码
2017/02/21 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
jquery实现全选、全不选以及单选功能
2017/03/23 jQuery
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
2017/12/11 Javascript
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
[33:19]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第一场 11.26
2020/11/30 DOTA
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
Python选课系统开发程序
2016/09/02 Python
写自荐信要注意什么
2013/12/26 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
基于Golang 高并发问题的解决方案
2021/05/08 Golang
Python requests用法和django后台处理详解
2022/03/19 Python