两种简单实现菜单高亮显示的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 loading加载效果实现代码
Nov 24 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
Feb 10 Javascript
JavaScript 盒模型 尺寸深入理解
Dec 31 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
Nov 26 Javascript
被遗忘的javascript的slice() 方法
Apr 20 Javascript
总结JavaScript设计模式编程中的享元模式使用
May 21 Javascript
jQuery在ie6下无法设置select选中的解决方法详解
Sep 20 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
Mar 13 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
Mar 15 Javascript
webpack写jquery插件的环境配置
Dec 21 jQuery
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
Jun 19 Javascript
面试中canvas绘制图片模糊图片问题处理
Mar 13 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版(4)
2006/10/09 PHP
php preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
javascript抖动元素的小例子
2013/10/28 Javascript
jQuery操作input值的各种方法总结
2013/11/21 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
JS实现同一个网页布局滑动门和TAB选项卡实例
2015/09/23 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
vue 双向数据绑定的实现学习之监听器的实现方法
2018/11/30 Javascript
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
antd日期选择器禁止选择当天之前的时间操作
2020/10/29 Javascript
vant中的toast层级改变操作
2020/11/04 Javascript
Python的Django框架中URLconf相关的一些技巧整理
2015/07/18 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
python的flask框架难学吗
2020/07/31 Python
python实现快速文件格式批量转换的方法
2020/10/16 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
意大利单身交友网站:Meetic
2020/07/12 全球购物
党风廉政承诺书
2014/03/27 职场文书
《海底世界》教学反思
2014/04/16 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
工作证明范本(2篇)
2014/09/14 职场文书
离婚协议书包括哪些内容
2014/10/16 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
幼儿园中秋节活动总结
2015/03/23 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书