【原创】CSS+JavaScript 实现菜单功能--改进版

在上一篇《CSS+JavaScript 实现菜单功能》通过一个HTML页面简单的实现了菜单功能。但是实际开发当中,如果菜单栏有很多项,频繁的修改HTML,会很繁琐,也容易出错。

改进版本优化了这个问题,通过简单的Javascript代码就可以增加菜单。同时使得HTML页面非常简洁,只需要写2行代码即可!O(∩_∩)O

1.使用前提,在HTML页面中引入一个CSS文件,和一个JavaScript文件。如下:

【原创】CSS+JavaScript 实现菜单功能--改进版<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
【原创】CSS+JavaScript 实现菜单功能--改进版
<HTML> 
【原创】CSS+JavaScript 实现菜单功能--改进版    
<HEAD> 
【原创】CSS+JavaScript 实现菜单功能--改进版        
<TITLE>Menu</TITLE> 
【原创】CSS+JavaScript 实现菜单功能--改进版        
<link type="text/css" rel="stylesheet" href="menu.css">   
【原创】CSS+JavaScript 实现菜单功能--改进版    
</HEAD> 
【原创】CSS+JavaScript 实现菜单功能--改进版    
<BODY> 
【原创】CSS+JavaScript 实现菜单功能--改进版        
<div><script src="menu.js"></script></div> 
【原创】CSS+JavaScript 实现菜单功能--改进版    
</BODY> 
【原创】CSS+JavaScript 实现菜单功能--改进版
</HTML>
【原创】CSS+JavaScript 实现菜单功能--改进版


引入CSS文件:<link type="text/css" rel="stylesheet" href="menu.css">  ,menu.css代码见后

引入JavaScript文件:<script src="menu.js"></script>

 

2.定义菜单代码如下:

【原创】CSS+JavaScript 实现菜单功能--改进版if (document.getElementById)
【原创】CSS+JavaScript 实现菜单功能--改进版    var root = new Root();   
【原创】CSS+JavaScript 实现菜单功能--改进版     
【原创】CSS+JavaScript 实现菜单功能--改进版    var m1 = new Menu("File","alert(this.innerText);"); 
【原创】CSS+JavaScript 实现菜单功能--改进版    root.add(m1); 
【原创】CSS+JavaScript 实现菜单功能--改进版    var m11 = new MenuItem("New"); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m1.add(m11); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m1.add(new MenuItem("Open","alert('open file');")); 
【原创】CSS+JavaScript 实现菜单功能--改进版    var m12 = new MenuItem("Save"); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m1.add(m12); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m1.add(new MenuItem("Save As")); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m1.add(new MenuItem("Close")); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m1.add(new MenuItem("")); 
【原创】CSS+JavaScript 实现菜单功能--改进版     
【原创】CSS+JavaScript 实现菜单功能--改进版    var m2 = new Menu("Edit"); 
【原创】CSS+JavaScript 实现菜单功能--改进版    root.add(m2); 
【原创】CSS+JavaScript 实现菜单功能--改进版     
【原创】CSS+JavaScript 实现菜单功能--改进版    root.toString();     
【原创】CSS+JavaScript 实现菜单功能--改进版}

【原创】CSS+JavaScript 实现菜单功能--改进版

 

说明:

1) var root = new Root();      

        root.toString();  

        固定格式

2)声明菜单:

        var m1 = new Menu("File","alert(this.innerText);");

        菜单显示的名称为“File”,onclick事件为alert(this.innerText);

        root.add(m1);

        第一级菜单(即页面初始显示的菜单)放到root之下,通过add()方法

        var m11 = new MenuItem("New"");

        m1.add(m11);

        声明“File”的子菜单“New”

        m1.add(new MenuItem("Open","alert('open file');"));

        声明“File”的子菜单“Open”

通过上面的代码即可完成菜单的添加功能。

 

 

代码文件:

<1> menu.cs

【原创】CSS+JavaScript 实现菜单功能--改进版#menubar {  
【原创】CSS+JavaScript 实现菜单功能--改进版    font-family
:verdana;  
【原创】CSS+JavaScript 实现菜单功能--改进版    font-size
:12px;               
【原创】CSS+JavaScript 实现菜单功能--改进版    margin
:1px;  
【原创】CSS+JavaScript 实现菜单功能--改进版
}
  
【原创】CSS+JavaScript 实现菜单功能--改进版#menubar li 
{  
【原创】CSS+JavaScript 实现菜单功能--改进版    float
:left;  
【原创】CSS+JavaScript 实现菜单功能--改进版    position
:relative;                
【原创】CSS+JavaScript 实现菜单功能--改进版    text-align
:left;  
【原创】CSS+JavaScript 实现菜单功能--改进版
}
         
【原创】CSS+JavaScript 实现菜单功能--改进版
/* each menu item style */  
【原创】CSS+JavaScript 实现菜单功能--改进版#menubar li a 
{  
【原创】CSS+JavaScript 实现菜单功能--改进版    border-style
:none;  
【原创】CSS+JavaScript 实现菜单功能--改进版    color
:black;  
【原创】CSS+JavaScript 实现菜单功能--改进版    display
:block;                            
【原创】CSS+JavaScript 实现菜单功能--改进版    width
:150px;  
【原创】CSS+JavaScript 实现菜单功能--改进版    height
:20px;  
【原创】CSS+JavaScript 实现菜单功能--改进版    line-height
:20px;  
【原创】CSS+JavaScript 实现菜单功能--改进版    padding-left
:10px;  
【原创】CSS+JavaScript 实现菜单功能--改进版    text-decoration
:none;     
【原创】CSS+JavaScript 实现菜单功能--改进版
}
  
【原创】CSS+JavaScript 实现菜单功能--改进版
/* the first level menu which displays default */  
【原创】CSS+JavaScript 实现菜单功能--改进版#menubar .menuMain
{  
【原创】CSS+JavaScript 实现菜单功能--改进版    border-color
:#C0C0C0;  
【原创】CSS+JavaScript 实现菜单功能--改进版    border-width
:1px;  
【原创】CSS+JavaScript 实现菜单功能--改进版    border-style
:solid;  
【原创】CSS+JavaScript 实现菜单功能--改进版
}
  
【原创】CSS+JavaScript 实现菜单功能--改进版
/* the first leve style when mouse on it */  
【原创】CSS+JavaScript 实现菜单功能--改进版#menubar li a:hover
{  
【原创】CSS+JavaScript 实现菜单功能--改进版    background-color
:#efefef;   
【原创】CSS+JavaScript 实现菜单功能--改进版    text-decoration
:underline;  
【原创】CSS+JavaScript 实现菜单功能--改进版
}
  
【原创】CSS+JavaScript 实现菜单功能--改进版
/* the second level menu block style */  
【原创】CSS+JavaScript 实现菜单功能--改进版#menubar li ul
{  
【原创】CSS+JavaScript 实现菜单功能--改进版    background-color
:#efefef;  
【原创】CSS+JavaScript 实现菜单功能--改进版    border-style
:none;  
【原创】CSS+JavaScript 实现菜单功能--改进版    display
:none;  
【原创】CSS+JavaScript 实现菜单功能--改进版    position
:absolute;  
【原创】CSS+JavaScript 实现菜单功能--改进版    top
:20px;  
【原创】CSS+JavaScript 实现菜单功能--改进版    left
:-40px;  
【原创】CSS+JavaScript 实现菜单功能--改进版    margin-top
:2px;  
【原创】CSS+JavaScript 实现菜单功能--改进版    width
:150px;              
【原创】CSS+JavaScript 实现菜单功能--改进版
}
  
【原创】CSS+JavaScript 实现菜单功能--改进版
/* the sub menu item style when mouse on it */  
【原创】CSS+JavaScript 实现菜单功能--改进版#menubar li ul li a:hover 
{  
【原创】CSS+JavaScript 实现菜单功能--改进版    text-decoration
:underline;   
【原创】CSS+JavaScript 实现菜单功能--改进版    padding-left
:20px;   
【原创】CSS+JavaScript 实现菜单功能--改进版
}
  
【原创】CSS+JavaScript 实现菜单功能--改进版
/* the third or more level menu block style */  
【原创】CSS+JavaScript 实现菜单功能--改进版#menubar li ul li ul 
{  
【原创】CSS+JavaScript 实现菜单功能--改进版    display
:none;  
【原创】CSS+JavaScript 实现菜单功能--改进版    position
:absolute;  
【原创】CSS+JavaScript 实现菜单功能--改进版    top
:0px;  
【原创】CSS+JavaScript 实现菜单功能--改进版    left
:150px;   
【原创】CSS+JavaScript 实现菜单功能--改进版    margin-top
:0;  
【原创】CSS+JavaScript 实现菜单功能--改进版    margin-left
:0;  
【原创】CSS+JavaScript 实现菜单功能--改进版    width
:150px;  
【原创】CSS+JavaScript 实现菜单功能--改进版
}
  
【原创】CSS+JavaScript 实现菜单功能--改进版


<2>menu.js

【原创】CSS+JavaScript 实现菜单功能--改进版var MenuConfig = 
【原创】CSS+JavaScript 实现菜单功能--改进版    defaultText : 
"Menu Item"
【原创】CSS+JavaScript 实现菜单功能--改进版    defaultAction : 
"javascript:void(0);"   , 
【原创】CSS+JavaScript 实现菜单功能--改进版    defaultMenuCssStyle : 
"menuMain" 
【原创】CSS+JavaScript 实现菜单功能--改进版}

【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版
var MenuHandler = 
【原创】CSS+JavaScript 实现菜单功能--改进版    idCounter : 
0
【原创】CSS+JavaScript 实现菜单功能--改进版    idPrefix : 
"menu-"
【原创】CSS+JavaScript 实现菜单功能--改进版    getId : 
function()return this.idPrefix + this.idCounter++ ;}
【原创】CSS+JavaScript 实现菜单功能--改进版    insertHTMLBeforeEnd : 
function(node, sHTML)
【原创】CSS+JavaScript 实现菜单功能--改进版        
if(node.insertAdjacentHTML != null)
【原创】CSS+JavaScript 实现菜单功能--改进版            node.insertAdjacentHTML('BeforeEnd',sHTML); 
【原创】CSS+JavaScript 实现菜单功能--改进版            
return
【原创】CSS+JavaScript 实现菜单功能--改进版        }
 
【原创】CSS+JavaScript 实现菜单功能--改进版        
var df; // DocumentFragment 
【原创】CSS+JavaScript 实现菜单功能--改进版
        var r = node.ownerDocument.createRange(); 
【原创】CSS+JavaScript 实现菜单功能--改进版        r.selectNodeContents(node); 
【原创】CSS+JavaScript 实现菜单功能--改进版        r.collapse(
false); 
【原创】CSS+JavaScript 实现菜单功能--改进版        df 
= r.createContextualFragment(sHTML); 
【原创】CSS+JavaScript 实现菜单功能--改进版        node.appendChild(df); 
【原创】CSS+JavaScript 实现菜单功能--改进版    }
 
【原创】CSS+JavaScript 实现菜单功能--改进版}
 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版
function displaySubMenu(li){  
【原创】CSS+JavaScript 实现菜单功能--改进版    
var subMenu = li.getElementsByTagName('ul')[0];  
【原创】CSS+JavaScript 实现菜单功能--改进版    
if(subMenu) 
【原创】CSS+JavaScript 实现菜单功能--改进版        subMenu.style.display 
= 'block';  
【原创】CSS+JavaScript 实现菜单功能--改进版}
  
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版
function hideSubMenu(li){  
【原创】CSS+JavaScript 实现菜单功能--改进版    
var subMenu = li.getElementsByTagName('ul')[0];    
【原创】CSS+JavaScript 实现菜单功能--改进版    
if(subMenu) 
【原创】CSS+JavaScript 实现菜单功能--改进版        subMenu.style.display 
= 'none';  
【原创】CSS+JavaScript 实现菜单功能--改进版}
   
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版
/****************************************** 
【原创】CSS+JavaScript 实现菜单功能--改进版 * Funciont Name:   MenuAbstractNode 
【原创】CSS+JavaScript 实现菜单功能--改进版 * Description: MenuAbstractNode class 
【原创】CSS+JavaScript 实现菜单功能--改进版 * @param {String} pText  
【原创】CSS+JavaScript 实现菜单功能--改进版 * @param {String} pAction  
【原创】CSS+JavaScript 实现菜单功能--改进版 * @Return: 
【原创】CSS+JavaScript 实现菜单功能--改进版 ******************************************
*/
  
【原创】CSS+JavaScript 实现菜单功能--改进版
function MenuAbstractNode(pText, pAction)
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.text = pText || MenuConfig.defaultText;     
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.action = pAction || MenuConfig.defaultAction; 
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.id = MenuHandler.getId(); 
【原创】CSS+JavaScript 实现菜单功能--改进版     
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.childNodes = []; 
【原创】CSS+JavaScript 实现菜单功能--改进版}
 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版MenuAbstractNode.prototype.add 
= function(node)
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.childNodes[this.childNodes.length] = node; 
【原创】CSS+JavaScript 实现菜单功能--改进版}
 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版
/****************************************** 
【原创】CSS+JavaScript 实现菜单功能--改进版 * Funciont Name:   toString 
【原创】CSS+JavaScript 实现菜单功能--改进版 * Description: generate HTML code 
【原创】CSS+JavaScript 实现菜单功能--改进版 * @param   
【原创】CSS+JavaScript 实现菜单功能--改进版 * @param  
【原创】CSS+JavaScript 实现菜单功能--改进版 * @Return: 
【原创】CSS+JavaScript 实现菜单功能--改进版 ******************************************
*/
 
【原创】CSS+JavaScript 实现菜单功能--改进版MenuAbstractNode.prototype.toString 
= function(){    
【原创】CSS+JavaScript 实现菜单功能--改进版    
var str = "<li id=\"" + this.id + "\" onmouseover=\"displaySubMenu(this)\" onmouseout=\"hideSubMenu(this)\"><a href=\"#\""
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版    
if(this.type=="Menu")
【原创】CSS+JavaScript 实现菜单功能--改进版        str 
= str + " class=\"" + this.cssStyle + "\""
【原创】CSS+JavaScript 实现菜单功能--改进版    }
 
【原创】CSS+JavaScript 实现菜单功能--改进版    str 
= str + " onclick=\""+this.action+"\">"+this.text+"</a>"
【原创】CSS+JavaScript 实现菜单功能--改进版     
【原创】CSS+JavaScript 实现菜单功能--改进版    
var sb = []; 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版    
for (var i = 0; i < this.childNodes.length; i++
【原创】CSS+JavaScript 实现菜单功能--改进版        sb[i] 
= this.childNodes[i].toString(); 
【原创】CSS+JavaScript 实现菜单功能--改进版    }
 
【原创】CSS+JavaScript 实现菜单功能--改进版    
if(sb.length>0)
【原创】CSS+JavaScript 实现菜单功能--改进版        str 
= str + "<ul>" + sb.join(""+ "</ul>" 
【原创】CSS+JavaScript 实现菜单功能--改进版    }
 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版    
return str + "</li>" ; 
【原创】CSS+JavaScript 实现菜单功能--改进版}
 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版
/****************************************** 
【原创】CSS+JavaScript 实现菜单功能--改进版 * Funciont Name:   Menu 
【原创】CSS+JavaScript 实现菜单功能--改进版 * Description: Menu class 
【原创】CSS+JavaScript 实现菜单功能--改进版 * @param {String} pText  
【原创】CSS+JavaScript 实现菜单功能--改进版 * @param {String} pAction  
【原创】CSS+JavaScript 实现菜单功能--改进版 * @param {String} pCssStyle  
【原创】CSS+JavaScript 实现菜单功能--改进版 * @Return: 
【原创】CSS+JavaScript 实现菜单功能--改进版 ******************************************
*/
  
【原创】CSS+JavaScript 实现菜单功能--改进版
function Menu(pText, pAction,pCssStyle)
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.base = MenuAbstractNode; 
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.base(pText,pAction); 
【原创】CSS+JavaScript 实现菜单功能--改进版     
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.type = "Menu"
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.cssStyle = pCssStyle || MenuConfig.defaultMenuCssStyle; 
【原创】CSS+JavaScript 实现菜单功能--改进版}
 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版Menu.prototype 
= new MenuAbstractNode; 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版
/****************************************** 
【原创】CSS+JavaScript 实现菜单功能--改进版 * Funciont Name:   MenuItem 
【原创】CSS+JavaScript 实现菜单功能--改进版 * Description: MenuItem class 
【原创】CSS+JavaScript 实现菜单功能--改进版 * @param {String} pText  
【原创】CSS+JavaScript 实现菜单功能--改进版 * @param {String} pAction  
【原创】CSS+JavaScript 实现菜单功能--改进版 * @Return: 
【原创】CSS+JavaScript 实现菜单功能--改进版 ******************************************
*/
 
【原创】CSS+JavaScript 实现菜单功能--改进版
function MenuItem(pText, pAction)
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.base = MenuAbstractNode; 
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.base(pText,pAction); 
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.type = "MenuItem"
【原创】CSS+JavaScript 实现菜单功能--改进版}
 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版MenuItem.prototype 
= new MenuAbstractNode; 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版
/****************************************** 
【原创】CSS+JavaScript 实现菜单功能--改进版 * Funciont Name:   Root 
【原创】CSS+JavaScript 实现菜单功能--改进版 * Description: Root class 
【原创】CSS+JavaScript 实现菜单功能--改进版 * @Return: 
【原创】CSS+JavaScript 实现菜单功能--改进版 ******************************************
*/
 
【原创】CSS+JavaScript 实现菜单功能--改进版
function Root()
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.id = "menubar"
【原创】CSS+JavaScript 实现菜单功能--改进版    
this.childNodes=[];  
【原创】CSS+JavaScript 实现菜单功能--改进版}
 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版Root.prototype 
= new MenuAbstractNode; 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版Root.prototype.toString 
= function()
【原创】CSS+JavaScript 实现菜单功能--改进版    document.write(
"<div id='menu'><ul id=\""+root.id+"\"> </ul> </div>"); 
【原创】CSS+JavaScript 实现菜单功能--改进版    
for(var i=0; i<this.childNodes.length; i++)
【原创】CSS+JavaScript 实现菜单功能--改进版        MenuHandler.insertHTMLBeforeEnd(document.getElementById(root.id), 
this.childNodes[i].toString()); 
【原创】CSS+JavaScript 实现菜单功能--改进版    }
 
【原创】CSS+JavaScript 实现菜单功能--改进版}
 
【原创】CSS+JavaScript 实现菜单功能--改进版
【原创】CSS+JavaScript 实现菜单功能--改进版
if (document.getElementById)
【原创】CSS+JavaScript 实现菜单功能--改进版    
var root = new Root();   
【原创】CSS+JavaScript 实现菜单功能--改进版     
【原创】CSS+JavaScript 实现菜单功能--改进版    
var m1 = new Menu("File","alert(this.innerText);"); 
【原创】CSS+JavaScript 实现菜单功能--改进版    root.add(m1); 
【原创】CSS+JavaScript 实现菜单功能--改进版    
var m11 = new MenuItem("New","alert(this.innerText);"); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m1.add(m11); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m1.add(
new MenuItem("Open","alert('open file');")); 
【原创】CSS+JavaScript 实现菜单功能--改进版    
var m12 = new MenuItem("Save"); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m1.add(m12); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m1.add(
new MenuItem("Save As")); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m1.add(
new MenuItem("Close")); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m1.add(
new MenuItem("")); 
【原创】CSS+JavaScript 实现菜单功能--改进版     
【原创】CSS+JavaScript 实现菜单功能--改进版    
var m2 = new Menu("Edit"); 
【原创】CSS+JavaScript 实现菜单功能--改进版    root.add(m2); 
【原创】CSS+JavaScript 实现菜单功能--改进版    
var m22 = new MenuItem("Select All"); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m2.add(m22); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m2.add(
new MenuItem("Cut")); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m2.add(
new MenuItem("Copy")); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m2.add(
new MenuItem("paste")); 
【原创】CSS+JavaScript 实现菜单功能--改进版     
【原创】CSS+JavaScript 实现菜单功能--改进版    
var m3 = new Menu("View"); 
【原创】CSS+JavaScript 实现菜单功能--改进版    
var m33 = new MenuItem("View List"); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m33.add(
new MenuItem("Function List")); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m3.add(m33); 
【原创】CSS+JavaScript 实现菜单功能--改进版    m3.add(
new MenuItem("Tool Bar")); 
【原创】CSS+JavaScript 实现菜单功能--改进版    root.add(m3); 
【原创】CSS+JavaScript 实现菜单功能--改进版    root.toString();     
【原创】CSS+JavaScript 实现菜单功能--改进版}
 
【原创】CSS+JavaScript 实现菜单功能--改进版

 本文转自BlogJavaOo缘来是你oO的博客,原文链接:实现菜单功能--改进版【原创】CSS+JavaScript ,如需转载请自行联系原博主。


上一篇:Photoshop教程:修改照片清晰度


下一篇:Halcon标定系列(3):我个人总结的“眼在手外“和“眼在手上”的心得笔记