首页 | IT新闻 | 硬件 | 操作系统 | 开发 | 网络编程 | 数据库 | 热门框架 | 网络安全 | 组网 | 建站指南 | 网页制作 | 特效 | 实用技巧 | 服务器 | 办公 | QQ | 探索 | 社区

  • 技术部落
  • 部落首页 > 网络编程 > JavaScript > 正文
  • 简单的滑动菜单
      2007-3-13  来源:网络资源  编辑:Jsbulo  热度:

    <!---
      简单的滑动菜单

      徐祖宁(唠叨)
      2003.03
      czjsz_ah@stats.gov.cn

      滑动菜单是一种较常用的菜单形式,在罗列二级分类的场合下广泛使用。其特点是代码量极小,数据描述简洁。
      本例使用无线表格,以类的书写方式表述。
      本代码可自由扩散。
    --->
    <style>
    table {font-size = 9pt}
    td {height = 20px}
    </style>
    <body>
    <span id="menus"></span>
    <span id="view"></span>
    </body>

    <script for=pad event=onclick>
    // 大类节点点击响应
    for(var i=1;i<this.parentElement.rows.length;i+=2)
      this.parentElement.rows[i].style.display = "none";
    this.parentElement.rows[this.rowIndex+1].style.display=’block’;
    view.innerHTML = this.v1 +":"+ this.v2; // 根据大小类自行构造相应动作
    </script>

    <script for=bar event=onclick>
    // 小类节点点击响应
    view.innerHTML = this.v1 +":"+ this.v2; // 根据大小类自行构造相应动作
    </script>

    <script>
    /**
    * 产生菜单的html代码串
    * 入口参数为菜单默认打开的大类号
    */
    function menu(n) {
        this.ar = new Array(
        /**
         * 参数数组
         * 列1:大类
         * 列2:小类
         * 列3:标题
         */
        new Array(1,0,"大类一"),
        new Array(1,1,"小类一"),
        new Array(1,2,"小类二"),
        new Array(2,0,"大类二"),
        new Array(2,1,"小类一"),
        new Array(2,2,"小类二"),
        new Array(2,3,"小类三"),
        new Array(3,0,"大类三"),
        new Array(3,1,"小类一"),
        new Array(3,2,"小类二"),
        new Array(4,0,"大类四"),
        new Array(4,1,"小类一"),
        new Array(4,2,"小类二"),
        new Array(4,3,"小类三")
        );
        this.width =120;
        this.bgcolor = "#f0f0f0";
        this.bordercolorlight = "#c0c0c0";
        this.bordercolordark = "#FFFFFF";
        this.tr_bgcolor = "#d0d0d0";
        var s = "<table border=1 align=center width="+this.width+" bgcolor="+this.bgcolor+" bordercolorlight="+this.bordercolorlight+" bordercolordark="+this.bordercolordark+" CELLPADDING=0 CELLSPACING=0>"
        for(var i=0;i<this.ar.length;i++) { // 构造菜单的html结构,其中将大小类编号作为自定义参数,以便事件响应时使用。
            if(this.ar[i][1] == 0) {
                if(i > 0)
                    s += "</table></td></tr>";
                var vk = this.ar[i][0]==n?"block":"none";
                s += "<tr id=’pad’ bgcolor="+this.tr_bgcolor+" v1="+this.ar[i][0]+" v2="+this.ar[i][1]+"><td align=center>"+this.ar[i][2]+"</td></tr><tr style=’display:"+vk+"’><td><table width=100%>";
            }else
                s += "<tr><td id=’bar’ v1="+this.ar[i][0]+" v2="+this.ar[i][1]+">"+this.ar[i][2]+"</td></tr>";
        }
        s += "</table></td></tr></table>";
        return s;
    }

    /*** 创建菜单 ***/
    menus.innerHTML = menu(4);
    </script>