.::: 一路问情 :::.
  • 注册
  • 登录
  • 会员
  • 生存游戏
  • FTP资源中心
  • 七海争霸
  • 社区设施
  • 帮助
.::: 一路问情 :::. » 『建站技术』 » 如何用HTML实现网页上的树形目录
‹‹ 上一主题 | 下一主题 ››
发新话题
  • 发新话题
  • 发布投票
  • 发布商品
  • 发布悬赏
  • 发布活动
  • 发布辩论
  • 发布视频
打印

[经验] 如何用HTML实现网页上的树形目录

prada
看贴不回的后果

中级会员

Rank: 2

帖子
89 
威望
53 点 
金钱
56 元 
好评
1 点 
  • 个人空间
  • 发短消息
  • 加为好友
  • 当前离线
1楼 大 中 小 发表于 2008-1-20 11:09  只看该作者

如何用HTML实现网页上的树形目录

制作方法:
第一步:嵌入代码。把下面这段代码复制到〈head〉〈/head〉标签之间。

〈style〉
〈!--
#foldheader{cursor:hand ; font-weight:bold ;
list-style-image:url(fold.gif)}
#foldinglist{list-style-image:url(list.gif)}
//--〉
〈/style〉
〈script language="JavaScript1.2"〉
〈!--
/**
* Based on Folding Menu Tree
* Dynamic Drive (www.dynamicdrive.com)
* For full source code, installation instructions,
* 100’s more DHTML scripts, and Terms Of
* Use, visit dynamicdrive.com
*
* Updated to support arbitrarily nested lists
* by Mark Quinn (mark@robocast.com) November 2nd 1998
*/

var head="display:’’"
img1=new Image()
img1.src="fold.gif"
img2=new Image()
img2.src="open.gif"

function change(){
if(!document.all)
return
if (event.srcElement.id=="foldheader") {
var srcIndex = event.srcElement.sourceIndex
var nested = document.all[srcIndex+1]
if (nested.style.display=="none") {
nested.style.display=’’
event.srcElement.style.listStyleImage="url(open.gif)"
}
else {
nested.style.display="none"
event.srcElement.style.listStyleImage="url(fold.gif)"
}
}
}

document.onclick=change

//--〉
〈/script〉

 


第二步:制作菜单。将代码插入到页面中要出现树形目录的地方。下面是一段代码范例:


〈ul〉
〈li id="foldheader"〉News〈/li〉
〈ul id="foldinglist" style="display:none" style=&{head};〉
〈li〉〈a href="http://www.cnn.com"〉CNN〈/a〉〈/li〉
〈li〉〈a href="http://www.abcnews.com"〉ABC News〈/a〉〈/li〉
〈li〉〈a href="http://www.vancouversun.com"〉Vancouver Sun〈/a〉〈/li〉
〈/ul〉

〈li id="foldheader"〉Games〈/li〉
〈ul id="foldinglist" style="display:none" style=&{head};〉
〈li〉〈a href="http://www.gamespot.com"〉GameSpot〈/a〉〈/li〉
〈li〉〈a href="http://www.happypuppy.com"〉Happy Puppy〈/a〉〈/li〉
〈li〉〈a href="http://www.gamecenter.com"〉Game Center〈/a〉〈/li〉
〈/ul〉

〈li id="foldheader"〉Software〈/li〉
〈ul id="foldinglist" style="display:none" style=&{head};〉
〈li〉〈a href="http://www.download.com"〉outer 1〈/a〉〈/li〉
〈li〉〈a href="http://www.hotfiles.com"〉outer 2〈/a〉〈/li〉
〈li id="foldheader"〉Nested〈/li〉
〈ul id="foldinglist" style="display:none" style=&{head};〉
〈li〉〈a href="http://www.windows95.com"〉nested 1〈/a〉〈/li〉
〈li〉〈a href="http://www.shareware.com"〉nested 2〈/a〉〈/li〉
〈/ul〉
〈li〉〈a href="http://www.windows95.com"〉outer 3〈/a〉〈/li〉
〈li〉〈a href="http://www.shareware.com"〉outer 4〈/a〉〈/li〉
〈/ul〉
〈/ul〉


如果我们仔细分析一下的话不难发现制作列表的秘诀就是一个大的列表

〈li id="foldheader"〉主目录名称〈/li〉
〈ul id="foldinglist" style="display:none" style=&{head};〉
〈li〉〈a href="对应地址 "〉子目录名称〈/li〉
〈li〉〈a href="对应地址 "〉子目录名称〈/li〉
〈li〉〈a href="对应地址 "〉子目录名称〈/li〉
〈/ul〉

这样的好处是添加子菜单非常容易只要不断制作一些列表出来,并且加上连接就可以制作出下拉菜单了。如果要实现多级的子菜单也很容易只要将某项子菜单的id设置成为foldheader并且不加连接,后面的格式就如加灰部分一样和前面的代码是一样的,嵌套使用。

第三步:将一段代码复制到上面列表代码的下面。

〈script language="JavaScript1.2"〉
〈!--
/**
* Get cookie routine by Shelley Powers
* (shelley.powers@ne-dev.com)
*/
function get_cookie(Name) {
var search = Name + "="
var returnvalue = "";
if (document.cookie.length 〉 0) {
offset = document.cookie.indexOf(search)
// if cookie exists
if (offset != -1) {
offset += search.length
// set index of beginning of value
end = document.cookie.indexOf(";", offset);
// set index of end of cookie value
if (end == -1) end = document.cookie.length;
returnvalue=unescape(document.cookie.substring(offset, end))
}
}
return returnvalue;
}

if (get_cookie(window.location.pathname) != ’’){
var openresults=get_cookie(window.location.pathname).split(" ")
for (i=0 ; i 〈 openresults.length ; i++){
foldinglist[openresults].style.display=’’
document.all[foldinglist[openresults].sourceIndex -
1].style.listStyleImage="url(open.gif)"
}
}

if (document.all){
var nodelength=foldinglist.length-1
var nodes=new Array(nodelength)
var openones=’’
}

function check(){
for (i=0 ; i 〈= nodelength ; i++){
if (foldinglist.style.display==’’)
openones=openones + " " + i
}
document.cookie=window.location.pathname+"="+openones
}

if (document.all)
document.body.onunload=check
//--〉
〈/script〉




第四步:将文件夹和菜单项前面的小图标图片文件复制到和网页文件同样的位置。命名规则:
关闭的文件夹:fold.gif
打开的文件夹:open.gif
菜单项目:list.gif

整个菜单就做好了。如果对于菜单文字不满意,可以修改第一步中的


〈style〉
〈!--
#foldheader{cursor:hand ; font-weight:bold ;
list-style-image:url(fold.gif)}
#foldinglist{list-style-image:url(list.gif)}
//--〉
〈/style〉



QQ
UID
54079 
精华
0 
积分
53 
钻石
0 克拉 
宣传
0 点 
来路
误闯进来 
阅读权限
20 
性别
男 
来自
beijing 
在线时间
51 小时 
注册时间
2007-12-27 
最后登录
2008-7-7 

查看详细资料

TOP

‹‹ 上一主题 | 下一主题 ››
发新话题
 

 

当前时区 GMT+8, 现在时间是 2008-7-24 15:12 蜀ICP备08000616号

清除 Cookies - 联系我们 - Ask Love - Archiver - WAP - TOP - 界面风格

  • YUYU_Emera-x

Powered by Discuz! 6.0.0,

Processed in 0.025708 second(s), 5 queries, Gzip enabled.

  • 控制面板首页
  • 编辑个人资料
  • 积分交易
  • 积分记录
  • 公众用户组
  • 个人空间管理
  • 资源中心
  • 名人堂
  • 社区银行
  • 醒目高亮
  • 勋章中心
  • 空间互踩
  • 便民查询
  • 邮箱图标
如果你喜欢一路问情,请同时向你的5个QQ好友宣传Sy64.Com,多谢支持!