zoukankan      html  css  js  c++  java
  • 非常适合OA系统的菜单

    以下放到Head区域

    <STYLE type=text/css>#menubar {
     BACKGROUND: rgb(212,208,200); FONT: menu; CURSOR: default; POSITION: relative
    }
    #menubar .root {
     BORDER-RIGHT: rgb(212,208,200) 1px solid; PADDING-RIGHT: 2pt; BORDER-TOP: rgb(212,208,200) 1px solid; PADDING-LEFT: 2pt; BORDER-LEFT: rgb(212,208,200) 1px solid; BORDER-BOTTOM: rgb(212,208,200) 1px solid
    }
    #menubar TABLE {
     BORDER-RIGHT: gray 2px solid; PADDING-RIGHT: 0pt; BORDER-TOP: #eeeeee 2px solid; DISPLAY: none; PADDING-LEFT: 0pt; BACKGROUND: rgb(212,208,200); PADDING-BOTTOM: 0pt; MARGIN: 0pt; FONT: menu; BORDER-LEFT: #eeeeee 2px solid; PADDING-TOP: 0pt; BORDER-BOTTOM: gray 2px solid; POSITION: absolute
    }
    #menubar TABLE TD {
     PADDING-RIGHT: 15pt; PADDING-LEFT: 12pt; PADDING-BOTTOM: 2pt; MARGIN: 0pt; PADDING-TOP: 2pt
    }
    #menubar .highlight {
     BACKGROUND: #08246B; COLOR: white;
    }
    #menubar .disabledhighlight {
     BACKGROUND: rgb(212,208,200); COLOR: gray
    }
    #menubar #break {
     COLOR: gray
    }
    #menubar .disabled {
     COLOR: gray
    }
    #menubar #break {
     PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 0pt; MARGIN: 0pt; PADDING-TOP: 0pt
    }
    #menubar SPAN.more {
     PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; LEFT: 14pt; FLOAT: right; PADDING-BOTTOM: 0pt; MARGIN: 0pt; FONT: 9pt webdings; WIDTH: 0.8em; PADDING-TOP: 0pt; POSITION: relative; TOP: -2pt; HEIGHT: 9pt
    }
    #menubar .TBHandle {
        BACKGROUND-COLOR: menu;
        BORDER-LEFT: buttonhighlight 1px solid;
        BORDER-RIGHT: buttonshadow 1px solid;
        BORDER-TOP: buttonhighlight 1px solid;
        FONT-SIZE: 1px;
        HEIGHT: 22px;
        POSITION: absolute;
        TOP: 1px;
        WIDTH: 3px
    }
    #menubar .yToolbar {
        BACKGROUND-COLOR: menu;
        BORDER-BOTTOM: buttonshadow 1px solid;
        BORDER-LEFT: buttonhighlight 1px solid;
        BORDER-RIGHT: buttonshadow 1px solid;
        BORDER-TOP: buttonhighlight 1px solid;
        HEIGHT: 27px;
        LEFT: 0px;
        POSITION: relative;
        TOP: 0px;   
    }
    .handbtn {
     BACKGROUND: buttonface; BORDER-BOTTOM: buttonshadow 1px solid; BORDER-LEFT: buttonhighlight 1px solid; BORDER-RIGHT: buttonshadow 1px solid; BORDER-TOP: buttonhighlight 1px solid; HEIGHT: 21px; WIDTH: 3px
    }
    .sepbtn1 {
     BORDER-LEFT: buttonshadow 1px ridge; BORDER-RIGHT: buttonhighlight 1px solid; WIDTH: 2px
    }

    </STYLE>

    以下放到Body区域

    <script language=javascript>
    //more javascript from http://www.smallrain.net
    //数组名+次序号码

    //数组内容第一个值为标题

    //"样式名称","字体颜色","名称","连接","目标窗口"

    OutBarFolder1=new Array(

    "系统功能",

    "none","default","新建管理人员","add","_blank",

    "none","default","浏览管理人员","none","_blank",

    "none","default","修改管理人员资料","none","_blank",

    "none","default","更改密码","none","_blank",

    "none","default","权限分配","none","none",

    "break","default","<hr>","none","none",

    "none","default","新建管理人员","add","_blank",

    "none","default","新建管理人员","add","_blank",

    "none","default","新建管理人员","add","_blank",

    "none","default","新建管理人员","add","_blank",

    "none","default","新建管理人员","add","_blank",

    "break","default","<hr>","none","none",

    "none","default","备份数据","none","_top",

    "none","default","恢复数据","none","_top",

    "break","default","<hr>","none","none",

    "none","default","更改个人资料","none","_blank",

    "none","default","更改个人密码","none","_blank",

    "break","default","<hr>","none","none",

    "none","default","退出管理系统","none","_top"

    );

    OutBarFolder2=new Array(

    "系统功能",

    "none","default","新建管理人员","add","_blank",

    "none","default","浏览管理人员","none","_blank",

    "none","default","修改管理人员资料","none","_blank",

    "none","default","更改密码","none","_blank",

    "none","default","权限分配","none","none",

    "break","default","<hr>","none","none",

    "none","default","新建管理人员","add","_blank",

    "none","default","新建管理人员","add","_blank",

    "none","default","新建管理人员","add","_blank",

    "none","default","新建管理人员","add","_blank",

    "none","default","新建管理人员","add","_blank",

    "break","default","<hr>","none","none",

    "none","default","备份数据","none","_top",

    "none","default","恢复数据","none","_top",

    "break","default","<hr>","none","none",

    "none","default","更改个人资料","none","_blank",

    "none","default","更改个人密码","none","_blank",

    "break","default","<hr>","none","none",

    "none","default","退出管理系统","none","_top"

    );

    OutBarFolder3=new Array(

    "系统功能",

    "none","default","新建管理人员","add","_blank",

    "none","default","浏览管理人员","none","_blank",

    "none","default","修改管理人员资料","none","_blank",

    "none","default","更改密码","none","_blank",

    "none","default","权限分配","none","none",

    "break","default","<hr>","none","none",

    "none","default","新建管理人员","add","_blank",

    "none","default","新建管理人员","add","_blank",

    "none","default","新建管理人员","add","_blank",

    "none","default","新建管理人员","add","_blank",

    "none","default","新建管理人员","add","_blank",

    "break","default","<hr>","none","none",

    "none","default","备份数据","none","_top",

    "none","default","恢复数据","none","_top",

    "break","default","<hr>","none","none",

    "none","default","更改个人资料","none","_blank",

    "none","default","更改个人密码","none","_blank",

    "break","default","<hr>","none","none",

    "none","default","退出管理系统","none","_top"

    );

     var childActive = null

        var menuActive = null

        var lastHighlight = null

        var active = false

      

        function getReal(el) {

          // Find a table cell element in the parent chain */

          temp = el

          while ((temp!=null) && (temp.tagName!="TABLE") && (temp.className!="root") && (temp.id!="menuBar")) {

            if (temp.tagName=="TD")

              el = temp

            temp = temp.parentElement

          }

          return el

        }

        function raiseMenu(el) {

          el.style.borderLeft = "1px #08246B solid"

          el.style.borderTop = "1px #08246B solid"

          el.style.borderRight = "1px #08246B solid"

          el.style.borderBottom = "1px #08246B solid"

          el.style.background = "#B5BED6"

        }

        function clearHighlight(el) {

          if (el==null) return

          el.style.borderRight = "1px lightgrey solid"

          el.style.borderBottom = "1px lightgrey solid"

          el.style.borderTop = "1px lightgrey solid"

          el.style.borderLeft = "1px lightgrey solid"

          el.style.background = "rgb(212,208,200)"

        }

        function sinkMenu(el) {

          el.style.borderRight = "1px #EEEEEE solid"

          el.style.borderBottom = "1px #EEEEEE solid"

          el.style.borderTop = "1px gray solid"

          el.style.borderLeft = "1px gray solid"

          el.style.background = "rgb(212,208,200)"

        }

        function menuHandler(menuItem) {

          // Write generic menu handlers here!

          // Returning true collapses the menu. Returning false does not collapse the menu

          return true

        }

        function getOffsetPos(which,el,tagName) {

          var pos = 0 // el["offset" + which]

          while (el.tagName!=tagName) {

            pos+=el["offset" + which]

            el = el.offsetParent

          }

          return pos 

        }

        function getRootTable(el) {

          el = el.offsetParent

          if (el.tagName=="TR")

            el = el.offsetParent

          return el

        }

        function getElement(el,tagName) {

          while ((el!=null) && (el.tagName!=tagName) )

            el = el.parentElement

          return el

        }

        function processClick() {

          var el = getReal(event.srcElement)

          if ((getRootTable(el).id=="menuBar") && (active)) {       

            cleanupMenu(menuActive)

            clearHighlight(menuActive)

            active=false

            lastHighlight=null

            doHighlight(el)

          }

          else {

            if ((el.className=="root") || (!menuHandler(el)))

              doMenuDown(el)

            else {

              if (el._childItem==null)

                el._childItem = getChildren(el)

              if (el._childItem!=null)  return;

              if ((el.id!="break") && (el.className!="disabled") && (el.className!="disabledhighlight") && (el.className!="clear"))  {

                if (menuHandler(el)) {

                  cleanupMenu(menuActive)

                  clearHighlight(menuActive)

                  active=false

                  lastHighlight=null

                }

              }

            }

          }

        }

        function getChildren(el) {

          var tList = el.children.tags("TABLE")

          var I = 0

          while ((I<tList.length) && (tList[I].tagName!="TABLE"))

            I++

          if (I==tList.length)

            return null

          else

            return tList[I]

        }

        function doMenuDown(el) {

          if (el._childItem==null)

            el._childItem = getChildren(el)

          if ((el._childItem!=null) && (el.className!="disabled") && (el.className!="disabledhighlight")) {

            // Performance Optimization - Cache child element

            ch = el._childItem

            if (ch.style.display=="block") {

              removeHighlight(ch.active)

              return

            }

            ch.style.display = "block"

            if (el.className=="root") {

              ch.style.pixelTop = el.offsetHeight + el.offsetTop + 2

              ch.style.pixelLeft = el.offsetLeft + 1

       if (ch.style.pixelWidth==0)

                ch.style.pixelWidth = ch.rows[0].offsetWidth+50

              sinkMenu(el)

              active = true

              menuActive = el

            } else {

              childActive = el

              ch.style.pixelTop = getOffsetPos("Top",el,"TABLE") -3 // el.offsetTop + el.offsetParent.offsetTop - 3

              ch.style.pixelLeft = el.offsetLeft + el.offsetWidth

       if (ch.style.pixelWidth==0)

                ch.style.pixelWidth = ch.offsetWidth+50

            }    

          }

        }

        function doHighlight(el) {

          el = getReal(el)

          if ("root"==el.className) {

            if ((menuActive!=null) && (menuActive!=el)) {

              clearHighlight(menuActive)

            }

            if (!active) {

              raiseMenu(el)

            }         

            else

              sinkMenu(el)

            if ((active) && (menuActive!=el)) {

              cleanupMenu(menuActive)         

              doMenuDown(el)

            }

            menuActive = el 

            lastHighlight=null

          }

          else {

            if (childActive!=null)

              if (!childActive.contains(el))

                closeMenu(childActive, el)   

            if (("TD"==el.tagName) && ("clear"!=el.className)) {

              var ch = getRootTable(el)        

              if (ch.active!=null) {

                if (ch.active!=el) {

                  if (ch.active.className=="disabledhighlight") 

                    ch.active.className="disabled"

                  else

                    ch.active.className=""

                  }

                }

              ch.active = el

              lastHighlight = el

              if ((el.className=="disabled") || (el.className=="disabledhighlight") || (el.id=="break"))

                el.className = "disabledhighlight"

              else {

                if (el.id!="break") {

                  el.className = "highlight"

                  if (el._childItem==null)

                    el._childItem = getChildren(el)

                  if (el._childItem!=null) {

                    doMenuDown(el)

                  }

                } 

              }

            }

          }

        }

        function removeHighlight(el) {

          if (el!=null)

            if ((el.className=="disabled") || (el.className=="disabledhighlight")) 

              el.className="disabled"

            else

              el.className=""

        }

        function cleanupMenu(el) {

          if (el==null) return

          for (var I = 0; I < el.all.length; I++) {

            var item = el.all[I]

            if (item.tagName=="TABLE")

             item.style.display = ""

            removeHighlight(item.active)

            item.active=null

          }

        }

        function closeMenu(ch, el) {

          var start = ch

          while (ch.className!="root") {

              ch = ch.parentElement

              if (((!ch.contains(el)) && (ch.className!="root"))) {

                start=ch

              }

          }

          cleanupMenu(start)

        }

        function checkMenu() {     

          if (document.all.menuBar==null) return

          if ((!document.all.menuBar.contains(event.srcElement)) && (menuActive!=null)) {

            clearHighlight(menuActive)

            closeMenu(menuActive)

            active = false

            menuActive=null

            choiceActive = null

          }

        }

        function doCheckOut() {

          var el = event.toElement     

          if ((!active) && (menuActive!=null) && (!menuActive.contains(el))) {

            clearHighlight(menuActive)

            menuActive=null

          }

        }

        function processKey() {

          if (active) {

            switch (event.keyCode) {

             case 13: lastHighlight.click(); break;

             case 39:  // right

               if ((lastHighlight==null) || (lastHighlight._childItem==null)) {

                 var idx = menuActive.cellIndex

    //             if (idx==menuActive.offsetParent.cells.length-2)

                 if (idx==getElement(menuActive,"TR").cells.length-2)

                   idx = 0

                 else

                   idx++

                 newItem = getElement(menuActive,"TR").cells[idx]

               } else

               {

                 newItem = lastHighlight._childItem.rows[0].cells[0]

               }

               doHighlight(newItem)

               break;

             case 37: //left

               if ((lastHighlight==null) || (getElement(getRootTable(lastHighlight),"TR").id=="menuBar")) {

                 var idx = menuActive.cellIndex

                 if (idx==0)

                   idx = getElement(menuActive,"TR").cells.length-2

                 else

                   idx--

                 newItem = getElement(menuActive,"TR").cells[idx]

               } else

               {

                 newItem = getElement(lastHighlight,"TR")

                 while (newItem.tagName!="TD")

                   newItem = newItem.parentElement

               }

               doHighlight(newItem)

               break;

             case 40: // down

                if (lastHighlight==null) {

                  itemCell = menuActive._childItem

                  curCell=0

                  curRow = 0

                }

                else {

                  itemCell = getRootTable(lastHighlight)

                  if (lastHighlight.cellIndex==getElement(lastHighlight,"TR").cells.length-1) {

                    curCell = 0

                    curRow = getElement(lastHighlight,"TR").rowIndex+1

                    if (getElement(lastHighlight,"TR").rowIndex==itemCell.rows.length-1)

                      curRow = 0

                  } else {

                    curCell = lastHighlight.cellIndex+1

                    curRow = getElement(lastHighlight,"TR").rowIndex

                  }

                }

                doHighlight(itemCell.rows[curRow].cells[curCell])

                break;

             case 38: // up

                if (lastHighlight==null) {

                  itemCell = menuActive._childItem

                  curRow = itemCell.rows.length-1

                  curCell= itemCell.rows[curRow].cells.length-1

                }

                else {

                  itemCell = getRootTable(lastHighlight)

                  if (lastHighlight.cellIndex==0) {

                    curRow = getElement(lastHighlight,"TR").rowIndex-1

                    if (curRow==-1)

                      curRow = itemCell.rows.length-1

                    curCell= itemCell.rows[curRow].cells.length-1

                  } else {

                    curCell = lastHighlight.cellIndex - 1

                    curRow = getElement(lastHighlight,"TR").rowIndex

                  }

                }

                doHighlight(itemCell.rows[curRow].cells[curCell])

                break;

               if (lastHighlight==null) {

                  curCell = menuActive._childItem

                  curRow = curCell.rows.length-1

                }

                else {

                  curCell = getRootTable(lastHighlight)

                  if (getElement(lastHighlight,"TR").rowIndex==0)

                    curRow = curCell.rows.length-1

                  else

                    curRow = getElement(lastHighlight,"TR").rowIndex-1

                }

                doHighlight(curCell.rows[curRow].cells[0])

                break;

            }

          }

        }

    function make_menu() {

    document.write("<table width='100%' cellpadding='0' cellspacing='0' border='0' style='background=rgb(212,208,200); BACKGROUND: buttonface; BORDER-BOTTOM: buttonshadow 1px solid; BORDER-LEFT: buttonhighlight 1px solid; BORDER-RIGHT: buttonshadow 1px solid; BORDER-TOP: buttonhighlight 1px solid;'>");

    document.write("<tr><TD><SPAN class=handbtn></SPAN></TD><td>");

    document.write("<TABLE ID=menuBar ONSELECTSTART='return false' ONCLICK='processClick()' ONMOUSEOVER='doHighlight(event.toElement)' ONMOUSEOUT='doCheckOut()' ONKEYDOWN='processKey()'><TR>");

     j=1;

     while(eval("window.OutBarFolder"+j))

      j++;

     I=1;

     while(I<j)

     {

      Folder=eval("OutBarFolder"+I)

            document.write("<TD NOWRAP CLASS=root>"+Folder[0]+"<TABLE CELLSPACING=0 CELLPADDING=0>");

      MakeItems(Folder);

            document.write("</TABLE>");

      I++;

     }

    document.write("</TD></TR></TABLE>");

    document.write("</td><td width=100% ONMOUSEOVER='processClick()'></td></tr></table>");

    }

    function MakeItems(Folder)

    {

     var items=0;

     while(Folder[items+1])

      items+=5;

     items/=5;

     for(var I=1;I<items*5;I+=5)

     {

    /*

      if(Folder[I+1]=="BREAK") {

       document.write("<TD NOWRAP ID=break><HR></TD>");

      }

      else {

       document.write("<TR><TD NOWRAP>"+Folder[I+1]+"</TD></TR>");

      }

    */

       document.write("<TR><TD NOWRAP"+((Folder[I+0]=="none")?"":" ID='"+Folder[I+0]+"'")+((Folder[I+3]=="none")?"":" onclick=\"go(1,'"+Folder[I+3]+"')\"")+">"+((Folder[I+1]=="default")?"":"<font color="+Folder[I+1]+">")+Folder[I+2]+((Folder[I+1]=="default")?"":"</font>")+"</TD></TR>");

    //alert("<TR><TD NOWRAP "+((Folder[I+0]=="none")?"":"ID='"+Folder[I+0]+"'")+((Folder[I+3]=="none")?"":" onclick=go(1,'"+Folder[I+3]+"')")+">"+((Folder[I+1]=="default")?"":"<font color="+Folder[I+1]+">")+Folder[I+2]+((Folder[I+1]=="default")?"":"</font>")+"</TD></TR>");

     } 

    }

    function go(I,iurl) {

     switch (I)

     {

      case 1 : parent.location=iurl;break; //返回首页

      case 2 : top.main.location='login.htm';break;  //登录

      case 3 : top.main.location='shenqing.htm';break;  //注册

      case 4 : top.main.location='addnew.asp';break;   //增加新贴

      case 5 : top.main.location='index1.asp';break;   //第一页

      case 6 : //上一页

       var obj=top.main

       var str=obj.location.href; 

       if(str.indexOf("index1")>0)

        obj.location="index1.asp@page="+obj.document.all("ppage").value;

       else

        obj.location="index1.asp";

       break;  

      case 7 : //下一页

       var obj=top.main

       var str=obj.location.href; 

       if(str.indexOf("index1")>0)

        obj.location="index1.asp@page="+obj.document.all("npage").value;

       else

        obj.location="index1.asp";

       break;  

      case 8 :  //最后一页

       var obj=top.main

       var str=obj.location.href; 

       if(str.indexOf("index1")>0)

        obj.location="index1.asp@page="+obj.document.all("epage").value;

       else

        obj.location="index1.asp";

       break;  

      case 9: top.main.location='editinfo.asp';break;

      case 10: top.main.location='quit.asp';break;

      case 11: top.main.location='userinfo.asp';break;   

      case 12:

       var newwin=top.open("aa.htm");

       newwin.focus();

       break;

     }

    }

    make_menu();

    </script>

  • 相关阅读:
    对spring web启动时IOC源码研究
    对volatile关键字的理解
    [书籍分享]0-009.微信营销与运营解密:利用微信创造商业价值的奥秘
    [JavaWeb基础] 002.JSP和SERVLET初级入门
    [Objective-C] 005_Category(类别)
    [PHP学习教程
    读Pyqt4教程,带你入门Pyqt4 _008
    读Pyqt4教程,带你入门Pyqt4 _007
    宝宝巴士安卓框架介绍
    [安卓基础] 006.打开另一个Activity
  • 原文地址:https://www.cnblogs.com/kingeric/p/615312.html
Copyright © 2011-2022 走看看