• java--css+js做的树形菜单(完整版)


    jsp页面:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
     String path = request.getContextPath();
     String basePath = request.getScheme() + "://"
       + request.getServerName() + ":" + request.getServerPort()
       + path + "/";
    %>
    <html>
     <link rel="stylesheet" type="text/css" href="<%=basePath%>css/menu.css">
     <head>
      <title>树形菜单</title>
     </head>
    <body class="panel" topmargin="0" leftmargin="0">
    <div id="body" style=" 186px">
      <!-- 树形结构菜单  -->
      <ul id="menu">
       <!-- levelOne 一 -->
       <li class="L1">
       <a href="javascript:c(OneLevelOne01);" id="OneLevelOne01">
       <span><img src="<%=basePath%>images/jia.png" id="OneLevelOne01Image" align="absMiddle"/> 客户关系管理系统</span> 
       </a>
       </li>
       <ul id="OneLevelOne01d" style="display: none;" class="U1">
            <!-- levelTwo -->
            <li class="L21">
            <a href="javascript:c(OneLevelTwo01);" id="OneLevelTwo01">
    	    <span><img src="<%=basePath%>images/jia.png"  align="absMiddle" id="OneLevelTwo01Image"/> 文件管理</span>
    	    </a>
    	    </li>
            <ul id="OneLevelTwo01d" style="display: none;">
                <!-- levelThree -->
                <li class="L3"><a href="fileList.action" target="mainRight">
    		    <span><img src="<%=basePath%>images/jian.png"  align="absMiddle"/> 文件列表</span> 
    		    </a>
    		    </li>
    		    <!-- levelThree -->
                <li class="L3"><a href="toUploadJsp.action" target="mainRight">
    		    <span><img src="<%=basePath%>images/jian.png"  align="absMiddle" /> 文件上传</span> 
    		    </a>
    		    </li>
            </ul>
            <!-- levelTwo -->
            <li class="L21">
            <a href="javascript:c(OneLevelTwo02);" id="OneLevelTwo02">
    		<span><img src="<%=basePath%>images/jia.png"  align="absMiddle" id="OneLevelTwo02Image" /> 111111</span> 
    		</a>
    		</li>
            <ul id="OneLevelTwo02d" style="display: none;">
                 <!-- levelThree -->
                 <li class="L3"><a href="" target="mainRight">
    			 <span><img src="<%=basePath%>images/jian.png"  align="absMiddle" /> 000001</span> 
    			 </a>
    			 </li>
    			 <!-- levelThree -->
                 <li class="L3"><a href="" target="mainRight">
    			 <span><img src="<%=basePath%>images/jian.png"  align="absMiddle" /> 000002</span> 
    			 </a>
    			 </li>
    			 <!-- levelThree -->
                 <li class="L3"><a href="" target="mainRight">
    			 <span><img src="<%=basePath%>images/jian.png"  align="absMiddle" /> 000003</span> 
    			 </a>
    			 </li>
    			 <!-- levelThree -->
                 <li class="L3"><a href="" target="mainRight">
    			 <span><img src="<%=basePath%>images/jian.png"  align="absMiddle" /> 000004</span> 
    			 </a>
    			 </li>
    			 <!-- levelThree -->
                 <li class="L3"><a href="" target="mainRight">
    			 <span><img src="<%=basePath%>images/jian.png"  align="absMiddle" /> 000005</span> 
    			 </a>
    			 </li>
            </ul>
       </ul>
       <!-- levelOne:账号管理  -->
       <li class="L1">
       <a href="javascript:c(TwoLevelOne02);" id="TwoLevelOne02">
       <span><img src="<%=basePath%>images/jia.png" id="TwoLevelOne02Image" align="absMiddle"/> 账号管理</span> 
       </a>
       </li>
       <ul id="TwoLevelOne02d" style="display: none;" class="U1">
            <!-- levelTwo: -->
            <li class="L21">
            <a href="#" target="right">
    	    <span><img src="<%=basePath%>images/jian.png" align="absMiddle" />改动password</span>
    	    </a>
    	    </li>
    	    <%if(session.getAttribute("user.type").toString().equals("1")){%>
            <!-- levelTwo -->
            <li class="L21">
            <a href="toAdminMain" target="right">
    	    <span><img src="<%=basePath%>images/jian.png" align="absMiddle" />用户管理</span>
    	    </a>
    	    </li>
    	    <%}%>
            <!-- levelTwo  -->
            <li class="L21">
            <a href="#" onclick=top.location.replace("Quit")>
    		<span><img  src="<%=basePath%>images/jian.png"  align="absMiddle" />退出系统</span> 
    		</a>
    		</li>
       </ul>  
    </ul>
    </div>
    <div id="bottom"></div>
    <script type="text/javascript" src="<%=basePath%>js/menu.js"></script>
    </body>
    </html>

    css文件:/css/menu.css

    {
     PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px
    }
    HTML {
     OVERFLOW-Y: scroll
    }
    A:link {
     COLOR: #000000; TEXT-DECORATION: none
    }
    A:visited {
     COLOR: #000000; TEXT-DECORATION: none
    }
    A:active {
     COLOR: #3333ff; TEXT-DECORATION: none
    }
    A:hover {
     COLOR: #ff0000; TEXT-DECORATION: none
    }
    .panel {
     BACKGROUND: #d6e4ef; COLOR: #000000
    }
    #expand_link {
     FONT-SIZE: 9pt; LEFT: 140px; POSITION: absolute; TOP: 11px; TEXT-DECORATION: underline
    }
    UL {
     PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; list-style-type:none; url("../images/toright.png");
    }
    IMG {
     BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; WIDTH: 16px; BORDER-BOTTOM: 0px; HEIGHT: 16px;
    }
    #body {
     BORDER-RIGHT: #ffffff 0px solid; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: #ffffff; PADDING-BOTTOM: 0px; BORDER-LEFT: #ffffff 0px solid; WIDTH: 100%; PADDING-TOP: 25px
    }
    #menu {
     BORDER-RIGHT: #246191 0px solid; BORDER-TOP: #246191 0px solid; BACKGROUND: #ffffff; BORDER-LEFT: #246191 0px solid; BORDER-BOTTOM: medium none
    }
    .U1 {
     BACKGROUND: #ffffff; BORDER-BOTTOM: #ffffff 1px solid
    }
    .L1 A:link {
     DISPLAY: block; FONT-SIZE: 9pt; BACKGROUND: url(../images/img/menu1_bg.png); COLOR: #476074; HEIGHT: 24px; TEXT-DECORATION: none
    }
    .L1 A:visited {
     DISPLAY: block; FONT-SIZE: 9pt; BACKGROUND: url(../images/img/menu1_bg.png); COLOR: #476074; HEIGHT: 24px; TEXT-DECORATION: none
    }
    .L1 A:link SPAN {
     PADDING-RIGHT: 0px; PADDING-LEFT: 16px; BACKGROUND: url(../images/ico/ar1.png) no-repeat left 50%; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: middle; WIDTH: 100%; CURSOR: hand; PADDING-TOP: 7px; HEIGHT: 24px
    }
    .L1 A:visited SPAN {
     PADDING-RIGHT: 0px; PADDING-LEFT: 16px; BACKGROUND: url(../images/ico/ar1.png) no-repeat left 50%; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: middle; WIDTH: 100%; CURSOR: hand; PADDING-TOP: 7px; HEIGHT: 24px
    }
    .L1 A:hover {
     FONT-WEIGHT: bold; BACKGROUND: url(../images/img/menu1_bg.png) 0px -24px; COLOR: #000000
    }
    .L1 A.active:link {
     BACKGROUND: url(../images/img/menu1_bg.png) 0px -24px
    }
    .L1 A.active:hover {
     BACKGROUND: url(../images/img/menu1_bg.png) 0px -24px
    }
    .L1 A.active:active {
     BACKGROUND: url(../images/img/menu1_bg.png) 0px -24px
    }
    .L1 A.active:visited {
     BACKGROUND: url(../images/img/menu1_bg.png) 0px -24px
    }
    .L1 A.active:link SPAN {
     FONT-WEIGHT: bold; BACKGROUND: url(../images/ico/ad1.png) no-repeat left 50%; COLOR: #000000
    }
    .L1 A.active:hover SPAN {
     FONT-WEIGHT: bold; BACKGROUND: url(../images/ico/ad1.png) no-repeat left 50%; COLOR: #000000
    }
    .L1 A.active:active SPAN {
     FONT-WEIGHT: bold; BACKGROUND: url(../images/ico/ad1.png) no-repeat left 50%; COLOR: #000000
    }
    .L1 A.active:visited SPAN {
     FONT-WEIGHT: bold; BACKGROUND: url(../images/ico/ad1.png) no-repeat left 50%; COLOR: #000000
    }
    .L21 A:link {
     DISPLAY: block; PADDING-LEFT: 13px; FONT-SIZE: 9pt; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #444659; HEIGHT: 24px; TEXT-DECORATION: none
    }
    .L21 A:visited {
     DISPLAY: block; PADDING-LEFT: 13px; FONT-SIZE: 9pt; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #444659; HEIGHT: 24px; TEXT-DECORATION: none
    }
    .L22 A:link {
     DISPLAY: block; PADDING-LEFT: 13px; FONT-SIZE: 9pt; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #444659; HEIGHT: 24px; TEXT-DECORATION: none
    }
    .L22 A:visited {
     DISPLAY: block; PADDING-LEFT: 13px; FONT-SIZE: 9pt; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #444659; HEIGHT: 24px; TEXT-DECORATION: none
    }
    .L3 A:link {
     DISPLAY: block; PADDING-LEFT: 13px; FONT-SIZE: 9pt; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #444659; HEIGHT: 24px; TEXT-DECORATION: none
    }
    .L3 A:visited {
     DISPLAY: block; PADDING-LEFT: 13px; FONT-SIZE: 9pt; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #444659; HEIGHT: 24px; TEXT-DECORATION: none
    }
    .L21 A:link SPAN {
     PADDING-RIGHT: 0px; PADDING-LEFT: 16px; BACKGROUND: url(../images/ico/ar.png) no-repeat left center; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: middle; WIDTH: 100%; CURSOR: hand; PADDING-TOP: 7px
    }
    .L21 A:visited SPAN {
     PADDING-RIGHT: 0px; PADDING-LEFT: 16px; BACKGROUND: url(../images/ico/ar.png) no-repeat left center; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: middle; WIDTH: 100%; CURSOR: hand; PADDING-TOP: 7px
    }
    .L22 A:link SPAN {
     PADDING-RIGHT: 0px; PADDING-LEFT: 16px; BACKGROUND: url(../images/ico/ar.png) no-repeat left center; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: middle; WIDTH: 100%; CURSOR: hand; PADDING-TOP: 7px
    }
    .L22 A:visited SPAN {
     PADDING-RIGHT: 0px; PADDING-LEFT: 16px; BACKGROUND: url(../images/ico/ar.png) no-repeat left center; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: middle; WIDTH: 100%; CURSOR: hand; PADDING-TOP: 7px
    }
    .L3 A:link SPAN {
     PADDING-RIGHT: 0px; PADDING-LEFT: 16px; BACKGROUND: url(../images/ico/ar.png) no-repeat left center; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: middle; WIDTH: 100%; CURSOR: hand; PADDING-TOP: 7px
    }
    .L3 A:visited SPAN {
     PADDING-RIGHT: 0px; PADDING-LEFT: 16px; BACKGROUND: url(../images/ico/ar.png) no-repeat left center; PADDING-BOTTOM: 0px; VERTICAL-ALIGN: middle; WIDTH: 100%; CURSOR: hand; PADDING-TOP: 7px
    }
    .L22 A:link SPAN {
     BACKGROUND: none transparent scroll repeat 0% 0%
    }
    .L22 A:visited SPAN {
     BACKGROUND: none transparent scroll repeat 0% 0%
    }
    .L3 A:link SPAN {
     BACKGROUND: none transparent scroll repeat 0% 0%
    }
    .L3 A:visited SPAN {
     BACKGROUND: none transparent scroll repeat 0% 0%
    }
    .L21 A:hover {
     FONT-WEIGHT: bold; BACKGROUND: url(../images/btn/menu2_bg.png) no-repeat left top
    }
    .L22 A:hover {
     FONT-WEIGHT: bold; BACKGROUND: url(../images/btn/menu2_bg.png) no-repeat left top
    }
    .L3 A:hover {
     FONT-WEIGHT: bold; BACKGROUND: url(../images/btn/menu2_bg.png) no-repeat left top
    }
    .L3 A:link SPAN {
     PADDING-RIGHT: 0px; PADDING-LEFT: 25px; PADDING-BOTTOM: 3px; PADDING-TOP: 12px
    }
    .L3 A:visited SPAN {
     PADDING-RIGHT: 0px; PADDING-LEFT: 25px; PADDING-BOTTOM: 3px; PADDING-TOP: 12px
    }
    .L21 A.active:link {
     BACKGROUND: none transparent scroll repeat 0% 0%
    }
    .L21 A.active:hover {
     BACKGROUND: none transparent scroll repeat 0% 0%
    }
    .L21 A.active:active {
     BACKGROUND: none transparent scroll repeat 0% 0%
    }
    .L21 A.active:visited {
     BACKGROUND: none transparent scroll repeat 0% 0%
    }
    .L21 A.active:link SPAN {
     FONT-WEIGHT: bold; BACKGROUND: url(../images/ico/ad.png) no-repeat left center; COLOR: #000000
    }
    .L21 A.active:hover SPAN {
     FONT-WEIGHT: bold; BACKGROUND: url(../images/ico/ad.png) no-repeat left center; COLOR: #000000
    }
    .L21 A.active:active SPAN {
     FONT-WEIGHT: bold; BACKGROUND: url(../images/ico/ad.png) no-repeat left center; COLOR: #000000
    }
    .L21 A.active:visited SPAN {
     FONT-WEIGHT: bold; BACKGROUND: url(../images/ico/ad.png) no-repeat left center; COLOR: #000000
    }
    .L22 A.active:link {
     BACKGROUND: url(../images/btn/menu2_bg.png) no-repeat 0px -24px
    }
    .L22 A.active:hover {
     BACKGROUND: url(../images/btn/menu2_bg.png) no-repeat 0px -24px
    }
    .L22 A.active:active {
     BACKGROUND: url(../images/btn/menu2_bg.png) no-repeat 0px -24px
    }
    .L22 A.active:visited {
     BACKGROUND: url(../images/btn/menu2_bg.png) no-repeat 0px -24px
    }
    .L3 A.active:link {
     BACKGROUND: url(../images/btn/menu2_bg.png) no-repeat 0px -24px
    }
    .L3 A.active:hover {
     BACKGROUND: url(../images/btn/menu2_bg.png) no-repeat 0px -24px
    }
    .L3 A.active:active {
     BACKGROUND: url(../images/btn/menu2_bg.png) no-repeat 0px -24px
    }
    .L3 A.active:visited {
     BACKGROUND: url(../images/btn/menu2_bg.png) no-repeat 0px -24px
    }
    .L22 A.active:link SPAN {
     FONT-WEIGHT: bold; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff
    }
    .L22 A.active:hover SPAN {
     FONT-WEIGHT: bold; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff
    }
    .L22 A.active:active SPAN {
     FONT-WEIGHT: bold; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff
    }
    .L22 A.active:visited SPAN {
     FONT-WEIGHT: bold; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff
    }
    .L3 A.active:link SPAN {
     FONT-WEIGHT: bold; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff
    }
    .L3 A.active:hover SPAN {
     FONT-WEIGHT: bold; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff
    }
    .L3 A.active:active SPAN {
     FONT-WEIGHT: bold; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff
    }
    .L3 A.active:visited SPAN {
     FONT-WEIGHT: bold; BACKGROUND: none transparent scroll repeat 0% 0%; COLOR: #ffffff
    }
    .Ls A:link {
     PADDING-RIGHT: 4px; FONT-SIZE: 9pt; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-TOP: 4px; HEIGHT: 20px; TEXT-ALIGN: right; TEXT-DECORATION: underline
    }
    .Ls A:visited {
     PADDING-RIGHT: 4px; FONT-SIZE: 9pt; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-TOP: 4px; HEIGHT: 20px; TEXT-ALIGN: right; TEXT-DECORATION: underline
    }
    .Ls A:hover {
     PADDING-RIGHT: 4px; FONT-SIZE: 9pt; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-TOP: 4px; HEIGHT: 20px; TEXT-ALIGN: right; TEXT-DECORATION: underline
    }
    .Ls A:active {
     PADDING-RIGHT: 4px; FONT-SIZE: 9pt; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-TOP: 4px; HEIGHT: 20px; TEXT-ALIGN: right; TEXT-DECORATION: underline
    }
    #bottom {
     BACKGROUND: url(../images/img/menu_bottom_bg.gif) no-repeat; HEIGHT: 80px
    }

    js文件:/js/menu.js

    var cur_id = "";
    var flag = 0, sflag = 0;
    
    //-------- 菜单点击事件 -------
    function c(srcelement) {
     var targetid, srcelement, targetelement;
     var strbuf;
     //-------- 假设点击了展开或收缩button---------
     targetid = srcelement.id + "d";
     targetelement = document.getElementById(targetid);
     if (targetelement.style.display == "none") {
      //展开
      srcelement.className = "active";
      targetelement.style.display = '';
      menu_flag = 0;
      
    	  var imgElt = document.getElementById(srcelement.id+"Image");
           imgElt.src = "../images/jian.png";
    
      
     } else {
      //收缩
      srcelement.className = "";
      targetelement.style.display = "none";//收缩
      menu_flag = 1;
      
    	  var imgElt = document.getElementById(srcelement.id+"Image");
           imgElt.src = "../images/jia.png";
    
     }
    }
    
    //-------- 菜单所有展开/收缩 -------
    var menu_flag = 1;
    function menu_expand() {
     if (menu_flag == 1)
      expand_text.innerHTML = "收缩";
     else
      expand_text.innerHTML = "展开";
     menu_flag = 1 - menu_flag;
    // var links = document.getElementsByTagName("A");
    // for (i = 0; i < links.length; i++) {
    //  srcelement = links[i];
    //  if (srcelement.parentNode.className.toUpperCase() == "L1"
    //    || srcelement.parentNode.className.toUpperCase() == "L21") {
    //   targetelement = document.getElementById(srcelement.id + "d");
    //   if (menu_flag == 0) {
    //    targetelement.style.display = '';
    //    srcelement.className = "active";
    //   } else {
    //    targetelement.style.display = "none";
    //    srcelement.className = "";
    //   }
    //  }
    // }
     
    }
    
    
    
    
    function set_current(id) {
     cur_link = document.getElementById("f" + cur_id)
     if (cur_link)
      cur_link.className = "";
     cur_link = document.getElementById("f" + id);
     if (cur_link)
      cur_link.className = "active";
     cur_id = id;
    }
    
    //-------- 打开网址 -------
    function a(URL, id) {
     set_current(id);
    // if (URL.substr(0, 7) != "http://" && URL.substr(0, 6) != "ftp://")
    //  URL = "/general/" + URL;
     parent.openURL(URL, 0);
    }
    
    function b(URL, id) {
     set_current(id);
    // URL = "/app/" + URL;
     parent.openURL(URL, 0);
    }
    
    //add by YZQ 2008-03-05 begin
    function bindFunc() {
     var args = [];
     for ( var i = 0, cnt = arguments.length; i < cnt; i++) {
      args[i] = arguments[i];
     }
     var __method = args.shift();
     var object = args.shift();
     return (function() {
      var argsInner = [];
      for ( var i = 0, cnt = arguments.length; i < cnt; i++) {
       argsInner[i] = arguments[i];
      }
      return __method.apply(object, args.concat(argsInner));
     });
    }
    var timerId = null;
    var firstTime = true;
    //add by YZQ 2008-03-05 end
    
    function d(URL, id) {
     //add by YZQ 2008-03-05 begin
     var winMgr = parent.parent.table_index.main.winManager;
     if (!winMgr) {
      if (firstTime) {
       parent.openURL("/fis/common/frame.jsp", 0);
       firstTime = false;
      }
      timerId = setTimeout(bindFunc(d, window, URL, id), 100);
      return;
     }
     firstTime = true;
     if (timerId) {
      clearTimeout(timerId);
     }
     if (winMgr) {
      winMgr.openActionPort("/fis/" + URL,
        document.getElementById("f" + id).innerText);
      return;
     }
     //add by YZQ 2008-03-05 end
     set_current(id);
     URL = "/fis/" + URL;
     parent.openURL(URL, 0);
    }
    
    
    //-------- 打开windows程序 -------
    function winexe(NAME, PROG) {
     URL = "/general/winexe?

    PROG=" + PROG + "&NAME=" + NAME; window .open( URL, "winexe", "height=100,width=350,status=0,toolbar=no,menubar=no,location=no,scrollbars=yes,top=0,left=0,resizable=no"); }


    图片资源:/images/jia.png,jian.png



  • 相关阅读:
    uni-app 调用支付宝支付
    PLSQL安装教程,无需oracle客户端(解决本地需要安装oracle客户端的烦恼)
    Java 基于WebMagic 开发的网络爬虫
    android 手机权限管理——PermissionsDispatcher
    Eclipse 上传 删除 下载 分析 hdfs 上的文件
    初见Hadoop—- 搭建MyEclipse 访问HDFS 上的文件
    仿简书登录框,可删除内容或显示密码框的内容
    setFeatureInt、android 自定义标题栏
    Translucent Bar Android状态栏自定义颜色
    仿QQ消息气泡提醒
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/5060419.html
Copyright © 2020-2023  润新知