两种简单实现菜单高亮显示的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 相关文章推荐
picChange 图片切换特效的函数代码
May 06 Javascript
javascript调试过程中找不到哪里出错的可能原因
Dec 16 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
js实现倒计时效果(小于10补零)
Mar 08 Javascript
关于vue.js v-bind 的一些理解和思考
Jun 06 Javascript
axios post提交formdata的实例
Mar 16 Javascript
使用vuex缓存数据并优化自己的vuex-cache
May 30 Javascript
使用ng-packagr打包Angular的方法示例
Sep 21 Javascript
简单实现vue中的依赖收集与响应的方法
Feb 18 Javascript
微信小程序8种数据通信的方式小结
Feb 03 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
Apr 11 Javascript
vue抽出组件并传值实例
Jul 31 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实现MVC开发得最简单的方法――模型
2007/04/10 PHP
PHP多线程抓取网页实现代码
2010/07/22 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
PHP实现的曲线统计图表示例
2016/11/10 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
tp5.1框架数据库子查询操作实例分析
2020/05/26 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
js函数内变量的作用域分析
2015/01/12 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
HTML5 js实现拖拉上传文件功能
2020/11/20 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
详解基于Bootstrap+angular的一个豆瓣电影app
2017/06/26 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
python处理html转义字符的方法详解
2016/07/01 Python
Python安装pycurl失败的解决方法
2018/10/15 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
2019/12/30 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
英国最大的自有市场,比亚马逊便宜:Flubit
2019/03/19 全球购物
Servlet如何得到客户端机器的信息
2014/10/17 面试题
最新计算机专业自荐信
2013/10/16 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
作风建设演讲稿
2014/05/23 职场文书
激励员工的口号
2014/06/16 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
优秀新员工事迹材料
2019/05/13 职场文书
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers