ASP生成LI+CSS无限级菜单
数据库 仅有一menu表
menu_id 菜单ID
menu_title 菜单显示的名称
menu_url 连接的目的地址
menu_par 父项ID
用ASP+MDB实现动态生成,LI+CSS实现弹出动态效果,JS使用myw3sys.js框架
程序测试下载地址:http://www.miaoqiyuan.cn/products/asp_css_li.rar
太晚了,就不截图了,下面是程序的核心代码。
ASP
< % function menu_adds(rs,ji,par,max,subme) submenu=subme+1 response.write ji&" <ul>"+chr(10) do while not rs.eof set demo=Conn.execute("select * from menu where menu_par="&rs("menu_id")) if not demo.eof and submenu<span><a href="about:blank">"&rs("menu_title")&"</a></span>"+chr(10) call menu_adds(demo,ji&" ",rs("menu_id"),max,submenu) else response.write ji&" <li><span><a href="about:blank">"&rs("menu_title")&"</a></span>"+chr(10) end if response.write ji&" "+chr(10) rs.movenext loop response.write ji&""+chr(10) end function '用法 menu_add(父ID,最大几级,所处级别) sub menu_add(par,max,submenu) set rs=Conn.execute("select * from menu where menu_par="&par) call menu_adds(rs," ",par,max,submenu) end sub '列出所有级别菜单 sub menuall() call menu_add(0,9999,0) end sub '列出一级菜单 sub menu1() call menu_add(0,1,0) end sub '列出二级菜单 sub menu2() call menu_add(0,2,0) end sub '列出编号为2的菜单下的子菜单,只显示一级 sub menu02_1() call menu_add(2,1,0) end sub %></li> </ul>
CSS
body{margin:0px;background:#666} ul{list-style:none;margin:0px;padding:0px;} /*弹出CSS菜单*/ #Menu_0 ul.show{display:block;border-bottom:#333 solid 2px;border-right:#333 solid 2px;} /*一级菜单*/ #Menu_0 li{float:left;} #Menu_0 a{background:#AAA;width:180px;height:40px;text-decoration:none;text-align:center;line-height:40px;color:#000;display:block;} #Menu_0 a:hover{background:#CCC;} /*二级菜单*/ #Menu_0 ul{display:none;position:absolute;z-index:1;} #Menu_0 ul li{float:none;} #Menu_0 ul li a{background:#BBB;} /*三级菜单*/ #Menu_0 ul ul{float:left;display:none;position:absolute;z-index:20;} #Menu_0 ul ul li a{background:#999;}
Javascript
/*使用myw3sys.js框架 http://labs.myw3sys.cn/js/myw3sys */ function Menu_Create(){ var oMenu=_Get("li","tagname"); for(i=0;i