<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
      <style type="text/css">
        *{margin:0;padding:0;border:0;}
        body
        {
         font-family: arial, 宋体, serif;
         font-size:12px;
        }
        #nav {
         width:180px;
         line-height: 24px;
         list-style-type: none;
         text-align:left;
            /*定义整个ul菜单的行高和背景色*/
        }
        /*==================一级目录===================*/
        #nav a {
         width: 160px;
         display: block;
         padding-left:20px;       
        }
        #nav li {
         background:#CCC; /*一级目录的背景色*/
         border-bottom:#FFF 1px solid; /*下面的一条白边*/
         float:left;        
        }
        #nav li a:hover{
         background:#CC0000; /*一级目录onMouseOver显示的背景色*/
        }
        #nav a:link  {
         color:#666; text-decoration:none;
        }
        #nav a:visited  {
         color:#666;text-decoration:none;
        }
        #nav a:hover  {
         color:#FFF;text-decoration:none;font-weight:bold;
        }
        /*==================二级目录===================*/
        #nav li ul {
         list-style:none;
         text-align:left;
        }
        #nav li ul li{
         background: #EBEBEB; /*二级目录的背景色*/
        }
        #nav li ul a{
            padding-left:20px;
            width:160px;
         /* padding-left二级目录中文字向右移动,但Width必须重新设置=(总宽度-padding-left)*/
        }
        /*下面是二级目录的链接样式*/
        #nav li ul a:link  {
         color:#666; text-decoration:none;
        }
        #nav li ul a:visited  {
         color:#666;text-decoration:none;
        }
        #nav li ul a:hover {
         color:#F3F3F3;
         text-decoration:none;
         font-weight:normal;
         background:#CC0000;
         /* 二级onmouseover的字体颜色、背景色*/
        }
        /*==============================*/
        #nav li:hover ul {
         left: auto;
        }
        #nav li.sfhover ul {
         left: auto;
        }
        #content {
         clear: left;
        }
        #nav ul.collapsed {
         display: none;
        }
        #PARENT{
         width:300px;
         padding-left:20px;
        }
</style>

<script type="text/javascript">
    var LastLeftID = "";
    function menuFix() {
        var obj = document.getElementById("nav").getElementsByTagName("li");

for (var i = 0; i < obj.length; i++) {
            obj[i].onmouseover = function () {
                this.className += (this.className.length > 0 ? " " : "") + "sfhover";
            }
            obj[i].onMouseDown = function () {
                this.className += (this.className.length > 0 ? " " : "") + "sfhover";
            }
            obj[i].onMouseUp = function () {
                this.className += (this.className.length > 0 ? " " : "") + "sfhover";
            }
            obj[i].onmouseout = function () {
                this.className = this.className.replace(new RegExp("( ?|^)sfhover\\b"), "");
            }
        }
    }
    function DoMenu(emid) {
        var obj = document.getElementById(emid);
        obj.className = (obj.className.toLowerCase() == "expanded" ? "collapsed" : "expanded");
        if ((LastLeftID != "") && (emid != LastLeftID)) //关闭上一个Menu
        {
            document.getElementById(LastLeftID).className = "collapsed";
        }
        LastLeftID = emid;
    }
    function GetMenuID() {
        var MenuID = "";
        var _paramStr = new String(window.location.href);
        var _sharpPos = _paramStr.indexOf("#");

if (_sharpPos >= 0 && _sharpPos < _paramStr.length - 1) {
            _paramStr = _paramStr.substring(_sharpPos + 1, _paramStr.length);
        }
        else {
            _paramStr = "";
        }

if (_paramStr.length > 0) {
            var _paramArr = _paramStr.split("&");
            if (_paramArr.length > 0) {
                var _paramKeyVal = _paramArr[0].split("=");
                if (_paramKeyVal.length > 0) {
                    MenuID = _paramKeyVal[1];
                }
            }
            /*
            if (_paramArr.length>0)
            {
            var _arr = new Array(_paramArr.length);
            }
 
            //取所有#后面的,菜单只需用到Menu
            //for (var i = 0; i < _paramArr.length; i++)
            {
            var _paramKeyVal = _paramArr[i].split('=');
   
            if (_paramKeyVal.length>0)
            {
            _arr[_paramKeyVal[0]] = _paramKeyVal[1];
            }  
            }
            */
        }

if (MenuID != "") {
            DoMenu(MenuID)
        }
    }
    GetMenuID(); //*这两个function的顺序要注意一下,不然在Firefox里GetMenuID()不起效果
    menuFix();
 </script>
</head>
<body>

<div id="PARENT">
<ul id="nav">
<li><a href="#Menu=ChildMenu1"  onmouseover="DoMenu('ChildMenu1')" onclick="DoMenu('ChildMenu1')">懒人建站</a>
 <ul id="ChildMenu1" class="collapsed">
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">js代码</a></li>
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">js代码</a></li>
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 </ul>
</li>
<li><a href="#Menu=ChildMenu2" onclick="DoMenu('ChildMenu2')">懒人建站</a>
 <ul id="ChildMenu2" class="collapsed">
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 </ul>
</li>
<li><a href="#Menu=ChildMenu3" onclick="DoMenu('ChildMenu3')">懒人建站</a>
 <ul id="ChildMenu3" class="collapsed">
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 </ul>
</li>
<li><a href="#Menu=ChildMenu4" onclick="DoMenu('ChildMenu4')">懒人建站</a>
 <ul id="ChildMenu4" class="collapsed">
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 <li><a href="#">懒人建站</a></li>
 </ul>
</li>
</ul>
</div>
</body>
</html>

转载原文:http://www.51xuediannao.com/js/nav/254.html

竖向折叠二级导航JS代码(可防刷新ul/li结构)的更多相关文章

  1. jQuery图片无缝滚动JS代码ul/li结构

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. jQuery垂直二级导航菜单代码

    http://www.sucaihuo.com/js/395.html 分享一个简单的垂直二级菜单导航.   HTML <div id="my_menu" class=&qu ...

  3. 二级导航 js

    $(function(){ $(".classify dl dd").mouseover(function(){ $(this).addClass("on"); ...

  4. 原创:js代码, 让dedecms支持Tag选择, 添加内容更为方便,不用手输Tag

    dedecms在编辑修改内容时,TAG标签需要手动输,中文的Tag, 中间还得用半角字符','分隔,  输入法切来切去很不方便,   于是动手改后台代码, 利用后台的tags_main.php, 让d ...

  5. PHPCMS V9 添加二级导航

    今天看了看phpcms 写到二级导航时发现点问题,查询导航栏的信息时返回的$r[arrchildid]与自己想象的不符,文档上说是返回子栏目id但是却有些不同. 开始的思路: <ul class ...

  6. vue高亮一级、二级导航

    使用vue开发过程中有的项目会存在多级导航的情况,如下图,这种就存在了两层,那么该如何高亮一级导航,又该如何高亮二级导航这就是今天我要记录的内容. 1.高亮一级导航很简单,代码如下: // 点击一级导 ...

  7. 浏览器控制台js代码与后台不同步

    原因:浏览器会缓存js 如果是将js代码直接通过<script>标签插入jsp页面中则不存在这个问题 在加载页面的时候会重新加载js代码 如果直接将js代码以文件的形式引入,那么每次在修改 ...

  8. js代码实现下拉菜单

    效果 js代码: <script type="text/javascript"> function ShowSub(li) {//函数定义 var subMenu = ...

  9. 切换加上延迟加载js代码

    切换加上延迟加载js代码 (function(){ var tit = $("#tab02 li"), con = $("#wrapmp>div"), c ...

随机推荐

  1. Andy's First Dictionary

    Description Andy, 8, has a dream - he wants to produce his very own dictionary. This is not an easy ...

  2. multi-threaded copy command - robocopy

    we can copy files by the powerful robocopy tool, and it allow copy using muliti-threaded as well. As ...

  3. IOS 学习笔记(4) 控件 标签(UILabel)的使用方法

    虽说Label的中文翻译是标签标记,但它其实是一个静态文本内容的展现控件. 一般来说,UILabel只是一个只读的文本视图,开发者可以利用UiLabel来展示内容长度有固定上限的文字内容.并且,UIL ...

  4. 共享内存操作类(C#源码)

    原文 http://blog.csdn.net/yefanqiu/article/details/1717458 VC++的共享内存操作代码实现起来相对比较容易,但是用C#语言来实现,就有一定难度,由 ...

  5. addChildViewController ipad 中Controller的嵌套和叠加

    1.addChildViewController 在 base controller中添加子的controller,会自动调用子的controller中viewDidload,viewWillAppe ...

  6. ubutun 下webalizer 分析Apache日志

    http://www.webalizer.org/  配置Webalizer 我们可以通过命令行配置Webalizer,也可以通过配置文件进行配置.下面将重点介绍使用配置文件进行配置,该方法使用形式比 ...

  7. php定界符 <<< 的作用及使用注意事项

    按照原样输出,包括换行符.特殊字符等 任何特殊字符都不需要转义,比如双引号.单引号,它会按照原样输出 像在双引号字符串中一样使用php的变量输出 定界符<<<,当需要输出大段文本时, ...

  8. Noip2008提高组总结

    Noip2008前三题是基础题,仔细一些都是可以AC的,第四题的证明很巧妙,但是看懂后代码其实很简单,感觉在这些大家都不屑去做的简单题中又学到了不少,四道题代码基本都是十几二十行就够了,渐渐感觉到,比 ...

  9. ORACLE中date类型字段的处理

    (1)在英文版本的ORACLE中默认日期格式为'DD-MON-YY',例如'01-JAN-98' 在汉化的中文版本中ORACLE默认日期格式为'日-月-年',例如'21-8月-2003'或'21-8月 ...

  10. <input type="text">文本输人框

    type类型: text  文本框 password  口令密码输人框 reset  重置或清除 buttou  命令按钮 checkbox  复选框 radio  单选框 submit  提交 fi ...