两种简单实现菜单高亮显示的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 事件对象属性小结
Apr 27 Javascript
jQuery 如何先创建、再修改、后添加DOM元素
May 20 Javascript
javascript性能优化之事件委托实例详解
Dec 12 Javascript
学习JavaScript图片预加载模块
Nov 07 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
Nov 26 Javascript
javascript replace()第二个参数为函数时的参数用法
Dec 26 Javascript
bootstrap响应式导航条模板使用详解(含下拉菜单,弹出框)
Nov 17 Javascript
详解JS数值Number类型
Feb 07 Javascript
Vue中v-for的数据分组实例
Mar 07 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
Apr 20 Javascript
js实现自动播放匀速轮播图
Feb 06 Javascript
微信小程序实现拍照和相册选取图片
May 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
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
解析php中的escape函数
2013/06/29 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
url地址自动加#号问题说明
2010/08/21 Javascript
实例分析javascript中的call()和apply()方法
2014/11/28 Javascript
jQuery实现仿新浪微博浮动的消息提示框(可智能定位)
2015/10/10 Javascript
JavaScript对象数组排序函数及六个用法
2015/12/23 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
2016/06/13 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
实例讲解Vue.js中router传参
2018/04/22 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
html5以及jQuery实现本地图片上传前的预览代码实例讲解
2021/03/01 jQuery
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
Python提取网页中超链接的方法
2016/09/18 Python
python多线程分块读取文件
2019/08/29 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
Python小白不正确的使用类变量实例
2020/05/29 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
Expedia瑞典官网:预订度假屋、酒店、汽车租赁、机票等
2021/01/23 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
物流专业大学生求职信范文
2013/10/28 职场文书
学院书画协会部门岗位职责
2013/12/01 职场文书
舞蹈专业求职信
2014/06/13 职场文书
个人向公司借款协议书
2014/10/09 职场文书
2015年后勤工作总结范文
2015/04/08 职场文书
施工员岗位职责范本
2015/04/11 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
python之django路由和视图案例教程
2021/07/26 Python