竖向折叠二级导航JS代码(可防刷新ul/li结构)

<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

时间: 2024-11-11 06:21:20

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

【JS 设计模式 】用组合模式来实现树形导航--JS代码结构思路分析(二)

[JS 设计模式 ]用组合模式来实现树形导航--代码结构思路分析(一) 根据上一节中的HTML代码结构我们通过JS来渲染HTML代码,我们先提供一下JS的代码片段,这代码代码不是一个完整的代码是经过简化的.通过JS代码来分析如何组装HTML的 Composite类型的代码: function TreeComposite(id, name, total, level, last) { var root = document.createDocumentFragment(); var panel =

网站二级导航标题特效

很多网站已经不满足于一级标题的展示,可能很多的时候有二级标题,三级标题等等. 那么如何设置二级标题以及如何把二级标题做的好看呢. 下面的代码中注意: 1.为了让二级标题有渐隐渐现的感觉,用了transition样式 2.二级标题的定位始终是一个困扰我好久的难题. 要确保一级标题有position属性(不能没有也不能设为static),只有一级标题(父级标题)设了position属性,二级标题的position属性才能有相对于一级标题定位的效果,否则二级标题相对于谁定位呢?!!怎么能确保定位是否准

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

dedecms在编辑修改内容时,TAG标签需要手动输,中文的Tag, 中间还得用半角字符','分隔,  输入法切来切去很不方便,   于是动手改后台代码, 利用后台的tags_main.php, 让dedecms添加内容时能去tags_main里去选择. 1. 打开\dede\templets\album_add.htm文件, 在顶部head中的js script区增加js方法. function setag(){ var tagg=window.showModalDialog("tags_ma

站点二级导航标题特效

非常多站点已经不满足于一级标题的展示,可能非常多的时候有二级标题,三级标题等等. 那么怎样设置二级标题以及怎样把二级标题做的好看呢. 以下的代码中注意: 1.为了让二级标题有渐隐渐现的感觉,用了transition样式 2.二级标题的定位始终是一个困扰我好久的难题. 要确保一级标题有position属性(不能没有也不能设为static),仅仅有一级标题(父级标题)设了position属性,二级标题的position属性才干有相对于一级标题定位的效果,否则二级标题相对于谁定位呢?!!怎么能确保定位

js代码实现下拉菜单

效果 js代码: <script type="text/javascript"> function ShowSub(li) {//函数定义 var subMenu = li.getElementsByTagName("ul")[0] ;//获取 subMenu.style.display = " block "; } function HideSub(li) { var subMenu = li.getElementsByTagNam

js代码从页面移植到文件中失效或js代码修改后不起作用的解决办法

最近在做关于网站的项目,总是发生这样的问题 写的javascript代码在页面上没有问题,但是将js代码移植到.js的文件中,在页面上进行调用,总是出现失效等错误 另外修改后的js代码,重新刷新网页仍然不起作用 经过大量搜索并经过验证,可以用下面方法来解决 将js代码封装到js文件中失效的原因可能是js文件中存在中文注释,导致在执行的时候中断,在js文件尽量不要写中文注释 修改后的js代码刷新网页后不起效果可能是因为你所用的浏览器使用缓存的问题,可在浏览器中设置取消使用缓存,并删除临时文件,重启

二级导航栏

像这样,一个菜单横向菜单就建好了,下来我们给栏目一,栏目二,栏目三,添加二级下拉菜单 <div class="nav"> <ul> <li><a href="#">栏目一</a> <ul> <li><a href="#">二级栏目</a></li> <li><a href="#">二级

竖向二级导航菜单特效的实现

竖向二级导航菜单特效的实现:在网页设计中,导航菜单的应用非常频繁,横向二级导航菜单的应用可能会多一些,垂直导航菜单可能稍稍少一些,当然这是相对而言的,竖向二级导航菜单的使用也是非常的频繁的,下面就简单介绍一下如何实现此功能,咱们这里只是介绍如何实现,关于美化方面不是重点,先看一段代码实例: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="a

jQuery如何实现竖向二级导航菜单

jQuery如何实现竖向二级导航菜单:二级导航菜单在网页设计中数不胜数,有横向导航菜单,也有竖向导航菜单.在个人的印象中,好像介绍实现横向导航的教程比较多,所以在这里咱们就单独介绍一下如何使用jQuery实现竖向导航菜单,这里只介绍如何实现此种功能,对于效果的美观度,可以自行修改设计.下面简单介绍一下如何实现此效果:静态代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &