zoukankan      html  css  js  c++  java
  • 两种简单实现菜单高亮显示的JS类(转载)

    两种简单实现菜单高亮显示的JS类

     

    近期在写一个博客管理后台的前端,涉及在同一页面两种高亮显示当前菜单的需求.记得当年写静态页时,为了实现高亮都是在每个页面加不同的样式,呵.高亮显示我觉得对于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值来使某一类型链接不被遍历,等等.

  • 相关阅读:
    Linux 压缩解压文件
    六天玩转javascript:javascript变量与表达式(2)
    六天玩转javascript:javascript变量与表达式(1)
    HTML5服务器端推送事件 解决PHP微信墙推送问题
    signalR制作微信墙 开源
    PhpStorm下Laravel代码智能提示
    ubuntu下使用nginx部署Laravel
    PHP微信墙制作,开源
    信鸽推送.NET SDK 开源
    14年总结
  • 原文地址:https://www.cnblogs.com/qixin622/p/7092016.html
Copyright © 2011-2022 走看看