zoukankan      html  css  js  c++  java
  • 动态侧拉菜单,二级.方便改为下拉菜单

    function JsMenu(name)
    {
        
    this.Direction = 0;        //主菜单排列方向:0代表横向,1代表竖向
        this.MainWidth = 200;    //主菜单各项宽度
        this.MainHeight = 20;    //主菜单各项高度
        
        
    this.ItemWidth = null;
        
    this.ItemHeight = null;
        
        
    this.MainIcon = null;
        
    this.MainAlign = null;
        
        
    this.ItemIcon = null;
        
    this.ItemAlign = null;
        
        
    this.MainAnchor = null;
        
    this.ItemAnchor = null;
        
        
    this.Spacing = 0;
        
    this.Padding = 0;
        
        
    this.OutBgColor = '#FFFFFF';
        
    this.OverBgColor = '#EFEFEF';
        
        
    this.OutBorder = '1px solid #BBBBBB';
        
    this.OverBorder = '1px solid #999999';
        
        
        
    this.Name = 'JM';        //注:不用更改
        this.Icon = '·';        //注:不用更改
        var HasItems = false;
        
    var MenuItems = new Array();
        
    this.Add = function(Id,Parent,Text,Href,Target,Title)
        
    {
            HasItems 
    = true;
            MenuItems[MenuItems.length] 
    = new Array(Id,Parent,Text,Href,Target,Title);
        }
    ;
        
        
    this.Load = function()
        
    {
            
    if(name == null)
                
    this.Name += Math.random().toString().replace('.','0');
            
    else
                
    this.Name = this.Name + name;
            
    if(this.MainHeight != nullthis.MainHeight = 'height="'+this.MainHeight+'"';
            
    if(this.ItemHeight != nullthis.ItemHeight = 'height="'+this.ItemHeight+'"';
            
    if(this.MainAlign != nullthis.MainAlign = 'align="'+this.MainAlign+'"';
            
    if(this.ItemAlign != nullthis.ItemAlign = 'align="'+this.ItemAlign+'"';
            
    if(this.MainAnchor != nullthis.MainAnchor = 'class="'+this.MainAnchor+'"';
            
    if(this.ItemAnchor != nullthis.ItemAnchor = 'class="'+this.ItemAnchor+'"';
            
    if(this.MainIcon == null)
                
    this.MainIcon = this.Icon;
            
    else
                
    this.MainIcon = '<img border="0" src="'+this.MainIcon+'" align="absmiddle"/>';
            
    if(this.ItemIcon == null)
                
    this.ItemIcon = this.Icon;
            
    else
                
    this.ItemIcon = '<img border="0" src="'+this.ItemIcon+'" align="absmiddle"/>';
        }
    ;
        
        
    this.getMain = function(NO)
        
    {
            
    if(this.Direction == 1) document.write('<tr>');
            document.write(
    '<td width="'+this.MainWidth+''+this.MainAlign+' '+this.MainHeight+' bgcolor="'+this.OutBgColor+'" style="border:'+this.OutBorder+';padding:'+this.Padding+';white-space:nowrap;" title="'+MenuItems[NO][5]+'"');
            document.write(
    ' onmouseover="this.bgColor=''+this.OverBgColor+'';this.style.border=''+this.OverBorder+'';'+this.Name+'_'+MenuItems[NO][0]+'.style.display='inline';" onmouseout="this.bgColor=''+this.OutBgColor+'';this.style.border=''+this.OutBorder+'';'+this.Name+'_'+MenuItems[NO][0]+'.style.display='none';">');
            document.write(
    '<div style="display:inline;'+(this.MainWidth-20)+'px;">&nbsp;'+this.MainIcon+' <a href="'+MenuItems[NO][3]+'" target="'+MenuItems[NO][4]+''+this.MainAnchor+'>'+MenuItems[NO][2]+'</a>&nbsp;</div>');
            document.write(
    '<div id="'+this.Name+'_'+MenuItems[NO][0]+'_HI" align="right" style="display:none;20px;"><span style="font-family:Webdings">4</span></div>');
            
    if(this.Direction == 1)
            
    {
                document.write(
    '<td width="0" align="left" valign="top" onmouseover="'+this.Name+'_'+MenuItems[NO][0]+'.style.display='inline';" onmouseout="'+this.Name+'_'+MenuItems[NO][0]+'.style.display='none';">');
                document.write(
    '<div id="'+this.Name+'_'+MenuItems[NO][0]+'" style="position:absolute;display:none;">');
                document.write(
    this.getItems(MenuItems[NO][0]));
                document.write(
    '</div>');
                document.write(
    '</td>');
            }

            
    else
            
    {
                document.write(
    '<br/>');
                document.write(
    '<div id="'+this.Name+'_'+MenuItems[NO][0]+'" style="position:absolute;display:none;">');
                document.write(
    this.getItems(MenuItems[NO][0]));
                document.write(
    '</div>');
            }

            document.write(
    '</td>');
            
    if(this.Direction == 1) document.write('</tr>');
        }
    ;
        
        
    this.getItems = function(PID)
        
    {
            
    var HasItems = false;
            
    var ItemString = null;
            ItemString 
    = '<table style="border-collapse:collapse;" border="0" cellpadding="0" cellspacing="0">';
            
    for(var i=1; i<MenuItems.length; i++)
            
    {
                
    if(MenuItems[i][1== PID)
                
    {
                    HasItems 
    = true;
                    ItemString 
    += '<tr>';
                    ItemString 
    += '<td width="'+this.ItemWidth+''+this.ItemAlign+' '+this.ItemHeight+' bgcolor="'+this.OutBgColor+'" style="border:'+this.OutBorder+';padding:'+this.Padding+';white-space:nowrap;" title="'+MenuItems[i][5]+'"';
                    ItemString 
    += ' onmouseover="this.bgColor=''+this.OverBgColor+'';this.style.border=''+this.OverBorder+'';'+this.Name+'_'+MenuItems[i][0]+'.style.display='inline';" onmouseout="this.bgColor=''+this.OutBgColor+'';this.style.border=''+this.OutBorder+'';'+this.Name+'_'+MenuItems[i][0]+'.style.display='none';">';
                    ItemString 
    += '<div style="display:inline;'+(this.ItemWidth-20)+'px;">&nbsp;'+this.ItemIcon+' <a href="'+MenuItems[i][3]+'" target="'+MenuItems[i][4]+''+this.ItemAnchor+'>'+MenuItems[i][2]+'</a>&nbsp;</div>';
                    ItemString 
    += '<div id="'+this.Name+'_'+MenuItems[i][0]+'_HI" align="right" style="display:none;20px;"><span style="font-family:Webdings">4</span></div>';
                    ItemString 
    += '<td width="0" align="left" valign="top" onmouseover="'+this.Name+'_'+MenuItems[i][0]+'.style.display='inline';" onmouseout="'+this.Name+'_'+MenuItems[i][0]+'.style.display='none';">';
                    ItemString 
    += '<div id="'+this.Name+'_'+MenuItems[i][0]+'" style="position:absolute;display:none;">';
                    ItemString 
    += this.getItems(MenuItems[i][0]);
                    ItemString 
    += '</div>';
                    ItemString 
    += '</td>';
                    ItemString 
    += '</td>';
                    ItemString 
    += '</tr>';
                    ItemString 
    += '<tr>';
                    ItemString 
    += '<td bgcolor="#FFFFFF" style="line-height:'+this.Spacing+'px;">&nbsp;</td>';
                    ItemString 
    += '</tr>';
                }

            }

            ItemString 
    += '</table>';
            
    if(HasItems)
            
    {
                ItemString 
    += '<script language="javascript" type="text/javascript">';
                ItemString 
    += 'document.getElementById("'+this.Name+'_'+PID+'_HI").style.display = "inline";';
                ItemString 
    += '</script>';
                
    return ItemString;
            }

            
    else
                
    return '&nbsp;';
        }
    ;
        
        
    this.Show = function()
        
    {
            
    if(HasItems)
            
    {
                
    this.Load();
                document.write(
    '<table style="border-collapse:collapse;" border="0" cellpadding="0" cellspacing="0">');
                
    this.getMain(0);
                
    for(var i=1; i<MenuItems.length; i++)
                
    {
                    
    if(MenuItems[i][1== 0)
                    
    {
                        
    if(this.Direction == 1)
                        
    {
                            document.write(
    '<tr>');
                            document.write(
    '<td bgcolor="#FFFFFF" style="line-height:'+this.Spacing+'px;">&nbsp;</td>');
                            document.write(
    '</tr>');
                        }

                        
    else
                        
    {
                            document.write(
    '<td bgcolor="#FFFFFF" width="'+this.Spacing+'"><spacer/></td>');
                        }

                        
    this.getMain(i);
                    }

                }

                document.write(
    '</table>');
            }

        }
    ;
        
        
    this.toString = function()
        
    {
            
    return '[class JsMenu]';
        }
    ;
    }

    要用到的代码

    JS文件.放在目录CSS下.其他地方的话请自己更改

    源码:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

    <HTML><HEAD><TITLE></TITLE>
    <META http-equiv=Content-Type content="text/html; charset=utf-8">
    <META content="MSHTML 6.00.2900.2873" name=GENERATOR></HEAD>
    <BODY leftMargin=0 topMargin=0>
    <META http-equiv=Pragma content=no-cache><LINK 
    href
    ="css/common.css" type=text/css rel=STYLESHEET>
    <!--#include file="inc/Conn.asp"-->

    <div>侧拉菜单,同时可以改为下拉菜单</div>


    <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0 bgcolor="#FFFFFF">
            
    <TBODY>
            
            
    <TR>
              
    <TD align=middle>
                
    <DIV align=center>
                
    <SCRIPT language=JavaScript 
                src
    ="css/JsMenu.js"></SCRIPT>

                
    <SCRIPT language=JavaScript>
            var JM 
    = new JsMenu();
            JM.Direction 
    = 1;    //主菜单排列方向:0代表横向,1代表竖向
            JM.MainWidth 
    = 160;    //主菜单各项宽度
            JM.MainHeight 
    = 28;    //主菜单各项高度
            
            JM.ItemWidth 
    = null;    //子菜单宽度
            JM.ItemHeight 
    = 28;    //子菜单高度
            
            JM.MainIcon 
    = 'css/icon.gif';    //主菜单图标
            JM.MainAlign = 'left';    //主菜单对齐方式
            
            JM.ItemIcon 
    =  'css/b01.gif';    //子菜单图标
            JM.ItemAlign = 'left';        //子菜单对齐方式
            
            JM.MainAnchor 
    = null;        //主菜单链接样式
            JM.ItemAnchor 
    = null;        //子菜单链接样式
            
            JM.Spacing 
    = 1;                //菜单之间间隔
            JM.Padding 
    = 4;                //菜单各项填充
            
            JM.OutBgColor 
    = '';    //默认时的背景颜色
            JM.OverBgColor = '#D1DBE7';    //激活时的背景颜色
            
            JM.OutBorder 
    = '0px solid #ffffff';        //默认时的边框样式
            JM.OverBorder = '1px solid #C0E0FF';    //激活时的边框样式
            
            
    //加载数据项(分类ID,所属父ID,分类名,链接地址,打开链接的方式,显示Title);
            i
    =0;
            m
    =0;
            n
    =0;
            var name
    ="";
            var parName
    ="";
            var temp
    ="";
            var temp2
    =new Array(); 
            var temp3
    =new Array();
            var link
    ="product.asp?bigclassname=";
            
    </SCRIPT>
    <%set rsBigClass1=server.CreateObject("adodb.recordset")
    rsBigClass1.open 
    "Select * From BigClass",conn,1,1
    do while not rsBigClass1.eof%>
            
                
    <SCRIPT language=JavaScript>        
                   i
    ++;
                  name
    ="level";
                  name
    =name+i;
                  var menuName
    =""
                  var nameExhibit
    ="<%=rsBigClass1("bigclassname")%>"
                  
                            menuName
    ="<%=rsBigClass1("bigclassname")%>"
                        
                    JM.Add(name,
    '',menuName,link+"<%=rsBigClass1("bigclassname")%>",'_self',nameExhibit);
               </SCRIPT>
    <!--子菜单-->
          
      
    <SCRIPT language=JavaScript>
                          var j
    =0;
                          parName
    =name;
                          temp
    =parName;
                   
    </SCRIPT>
    <%
          
    set rsSmallClass1=server.CreateObject("adodb.recordset")
          rsSmallClass1.open 
    "Select * From SmallClass Where BigClassName='" & rsBigClass1("BigClassName"& "'",conn,1,1
          
    if not(rsSmallClass1.bof and rsSmallClass1.eof) then
            
    do while not rsSmallClass1.eof
        %
    >  
                
    <SCRIPT language=JavaScript>
                        j
    ++;
                        name
    ="level"+i+"_"+j;                   
                        
    </SCRIPT>

                
    <SCRIPT language=JavaScript>
                   var subMenuName
    =""
                   var nameExhibit
    ="<%=rssmallclass1("smallclassname")%>"
                
                            subMenuName
    ="<%=rssmallclass1("smallclassname")%>"
                        
                JM.Add(name,parName,subMenuName,link
    +"<%=rsBigClass1("bigclassname")%>&smallclassname=<%=rssmallclass1("smallclassname")%>",'_self',nameExhibit);
            </SCRIPT>

                
    <SCRIPT language=JavaScript>
                        parName
    =temp;
                       
    </SCRIPT>
    <%
          rsSmallClass1.movenext
          
    loop
          
    end if
          rsSmallClass1.close
          
    set rsSmallClass1=nothing    %>
    <!--子菜单完成-->

    <%  rsBigClass1.movenext
        
    loop
        rsbigclass1.close
        
    set rsbigclass1=nothing%>

                
    <SCRIPT language=JavaScript>
            JM.Show();    
    //显示菜单
            
    </SCRIPT>
        
    </DIV></TD></TR></TBODY></TABLE>
  • 相关阅读:
    接口和抽象类
    JNI
    Serializable Parcelable
    android keystore 生成以及作用
    svn 服务器搭建
    java 8种基本数据类型
    Android NDK
    android adb命令行
    对称加密AES和DES加密、解密
    .net中的数据库连接字符串
  • 原文地址:https://www.cnblogs.com/zerogo/p/2209379.html
Copyright © 2011-2022 走看看