导航条——树状导航菜单

1.概述

对于一个导航文字很多,并且可以对导航内容进行分类的网站来说,可以将页面中的导航文字以树状图的形式显示,树状图的导航菜单在实际开发应用中非常多。应用它可以方便用户查看。运行本实例,如图1所示,单击节点名称前的加号“+”可以展开指定的节点,单击减号“—”可以收缩子节点。

2.技术要点

本实例主要是通过JavaScript控制表格行的<tr>标签的显示或隐藏来实现节点的显示和隐藏。控制<tr>标签的显示和隐藏,主要是在JavaScript中控制<tr>标签对象的display属性来实现。display属性前面已经介绍过,所以此处不再赘述。

3.具体实现

(1)利用JavaScript定义一个函数ShowTR(),用于显示或隐藏表格中指定行的内容。关键代码如下:

(1)利用JavaScript定义一个函数ShowTR(),用于显示或隐藏表格中指定行的内容。关键代码如下:
function ShowTR(objImg,objTr){
            if(objTr.style.display == ""){   //折叠展开的节点
                  objTr.style.display = "none";
                  objImg.src = "images/jia.gif";    //改变图标
                  objImg.alt = "展开";         //设置工具提示为“展开”
            }else{                                 //展开折叠的节点
                  objTr.style.display = "";
                  objImg.src = "images/jian.gif";  //改变图标
                  objImg.alt = "折叠";         //设置工具提示为“折叠”
            }
}

(2)为了实现在默认情况下第1节点为展开状态,可以在该函数后面加入以下代码,用于当第1个节点包括子节点时,设置第1个节点为展开状态,关键代码如下:

<%
            if(m>1)  //设置第1个节点为展开状态
                  out.println("<script language=‘javascript‘>ShowTR(img1,OpenRep1)  //设置第1个节点为展开状态</script>");
%>

(3)从视图V_Type中查询商品的分类信息。关键代码如下:

<%
            ConnDB conn=new ConnDB();
            ResultSet rs_superType=conn.executeQuery("select ID,superType from V_Type group by ID,superType order by superType desc");
%>

(4)循环显示商品分类信息,并查询各分类中所包括的子类名称,如果该分类有相对应的子类,则在节点前显示加号“+”,否则显示减号“—”。注意:需要为每个包含子节点的节点设置超链接,该超链接执行的操作时调用自定义的JavaScript函数showTR(),实现节点的展开与折叠。关键代码如下:

<table width="100%" height="40"  border="0" cellpadding="0" cellspacing="0">
      <%
                  int ID_superType=0;
                  String superType="";
                  int m=1;
                  while(rs_superType.next()){
                           ID_superType=rs_superType.getInt(1);
                           superType=rs_superType.getString(2);
                        String sql="select * from V_Type where ID="+ID_superType;
                        ResultSet rs_subType=conn.executeQuery(sql);
                        String subType="";
                        int subID=0;
                        //获取记录总数
                        rs_subType.last();
                        int subType_RC=rs_subType.getRow();
                        rs_subType.first();
                   %>
            <tr>
                  <td>
                        <%if(subType_RC<=0){%>
                        <img src="images/jian_null.gif" width="38" height="16" border="0">
                        <%=superType%>
                        <%}else{%>
                        <a href="Javascript:ShowTR(img<%=m%>,OpenRep<%=m%>)">
                              <img src="images/jia.gif" border="0" alt="展开" id="img<%=m%>">
                        </a>
                        <a href="Javascript:ShowTR(img<%=m%>,OpenRep<%=m%>)"><%=superType%></a>
                        <%}%>
           </td>
                  <%if (subType_RC>0){%>
                    <tr id="OpenRep<%=m%>" style="display:none;">
                     <td colspan="6">
                        <%do{
                              subType=rs_subType.getString(3);
                              subID=rs_subType.getInt(4);
                        %>
                       <table width="100%"  border="0" cellspacing="-2" cellpadding="-2">
                   <tr>
                      <td height="25" align="center">
                              <table width="90%"  border="0" cellspacing="0" cellpadding="0">
                            <tr onMouseOver="this.style.background=‘#EEEEEE‘"
                                    onMouseOut="this.style.background=‘‘">
                    <td width="15%">&nbsp;</td>
                    <td width="10%" align="center">
                                    <img src="images/folder.gif" width="16" height="16" border="0">
                              </td>
                    <td width="75%"><a href="#"><%=subType%></a></td>
                       </tr>
                          </table>
                              </td>
                   </tr>
                 </table>
                         <%     m++;  //注意,该条语句一定不能少
                              }while(rs_subType.next());
                        %>
                     </td>
                     <%}%>
                    </tr>
                  <%}%>
</table>
时间: 2024-10-15 03:40:34

导航条——树状导航菜单的相关文章

五中常用简洁后台导航菜单(一级导航,二级导航,手风琴式导航,左或右悬浮式导航,树状导航)

首先附上源码,可以下载! http://yunpan.cn/cd9ivPcL4ayQT (提取码:d8a5) 在建立导航菜单的时候,我们首先布局一个(" 头"+[左,右(自适应)]+”尾“)的HTML页面: 来看一下HTML页面的编写: <div id="container"> <div id="head"></div> <div id="mainContent"> <di

Bootstrap之导航条,分页导航

导航条基础 导航条(navbar)和上一节介绍的导航(nav),就相差一个字,多了一个“条”字.其实在Bootstrap框架中他们还是明显的区别.在导航条(navbar)中有一个背景色.而且导航条可以是纯链接(类似导航),也可以是表单,还有就是表单和导航一起结合等多种形式.   基础导航条 使用方法: 在制作一个基础导航条时,主要分以下几步: 第一步:首先在制作导航的列表(<ul class=”nav”>)基础上添加类名“navbar-nav” 第二步:在列表外部添加一个容器(div),并且使

导航条——收缩式导航菜单

1.概述 在网站中不仅可以设置导航条,而且还可以设置导航菜单.由于菜单内容比较多,同一页面显示比较杂乱,所以很多的设计者都采用了收缩式的菜单形式. 2.技术要点 本实例主要是应用JavaScript控制显示和隐藏表格的功能,实现收缩式导航菜单的功能.单击导航超链接,显示当前菜单的内容,隐藏上一个显示的菜单,在隐藏菜单时,让其有规律地隐藏,从而实现展开或收缩的动画效果. 3.具体实现 (1)创建index.jsp页,在页面中添加一级导航菜单项以及二级导航菜单,关键代码如下: <tr style=&qu

Java Swing编程之仿js树状折叠菜单

最近要完成一个需求:用swing做个树状菜单,含二级菜单,点击一级菜单展开二级菜单,且二级菜单数目超过预览视图会出现滚动条.由于swing研究的少,花了不少精力! 先看下测试效果图: 收起图: 展开图: 完整源码: 1 package com.xuwei.test2; 2 3 import java.awt.BorderLayout; 4 import java.awt.Color; 5 import java.awt.GridLayout; 6 import java.awt.event.Ac

导航条——动态改变导航菜单的背景颜色

1.概述 在浏览一些网站时,当鼠标经过导航菜单某一项时,其背景颜色将切换为其他颜色,实现这种简单的效果会更吸引浏览者的注意. 2.技术要点 本实例主要是应用JavaScript方法来动态改变<td>标签的背景颜色实现的.当鼠标经过<td>表示的导航菜单时,会触发onMouseOver事件,然后调用自定义的JavaScript方法改变<td>的背景颜色:当鼠标移出<td>时,会触发onMouseOut事件,调用自定义的JavaScript方法还原背景颜色为初始

jQuery.TreeView插件实现树状导航(十三)

一:jQuery.TreeView插件简介 该插件的特点: 1.支持静态的树,即一次性将全部数据加载到客户端. 2.支持异步树,即一次只加载一级或若干级节点,子节点可以异步加载数据. 3.支持节点级联. 4.能够承载大数据量,并性能表现优异. 5.支持主流浏览器. 6.使用方便官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-treeview/ 二:jQuery.TreeView插件使用 Step 1:添加相关css及js的引用 <l

Bootstrap系列 -- 40. 导航条二级菜单

在导航条中添加二级菜单也非常简单 <div class="navbar navbar-default" role="navigation"> <div class="navbar-header"> <a href="##" class="navbar-brand">导航条</a> </div> <ul class="nav navb

Bootstrap导航条

前面的话 导航条(navbar)和导航(nav),就相差一个字,多了一个“条”字.其实在Bootstrap框架中他们还是明显的区别.在导航条(navbar)中有一个背景色.而且导航条可以是纯链接(类似导航),也可以是表单,还有就是表单和导航一起结合等多种形式.本文将详细介绍Bootstrap导航条 基础导航条 在Bootstrap框架中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多. 导航条是在应用或网站中作为导航页头的响应式基础组件.它们在移动设备上可以折叠(并且可开

Bootstarp学习(十一)导航条

导航条基础 导航条(navbar)和上一节介绍的导航(nav),就相差一个字,多了一个"条"字.其实在Bootstrap框架中他们还是明显的区别.在导航条(navbar)中有一个背景色.而且导航条可以是纯链接(类似导航),也可以是表单,还有就是表单和导航一起结合等多种形式.在这一节中将一起探讨Bootstrap框架中导航条的使用. 导航条和导航一样,在Bootstrap框架中是一个独立组件,所以你也可以根据自己的需求使用不同的版本: LESS版本:对应的源文件navbar.less S