您的位置:软件 > 设计在线 > 网页陶吧 > 技术平台 > JavaScript > 正文
有趣的仿QQ面板导航菜单
[文章信息]
作者:暖阳
时间:2002-09-03
出处:天极设计在线
责任编辑:Shiny
[文章导读]
QQ的组切换效果相信大家都很熟悉,现在我们在网页中用Javascript模拟制作一个这样的切换效果
advertisement
热点推荐
· 闪客五周年作品展:灵光1999
· 10.18精选 Win2003共享打印
· Messenger Plus!新功能体验
· 专业的魅力:图层的使用
· 金山文字2003中对文档进行页面设置
[正文]
  QQ的组切换效果相信大家都很熟悉,现在我们在网页中用Javascript模拟制作一个这样的切换效果,用它作为页面导航菜单可是个不错的主意哦!

  以下是效果演示,其中菜单的组数和内容可以任意定义。

  代码及其解释: 先创建一个CSS样式表,置于<HEAD>模块中,分别定义导航菜单的标题和内容的样式: <style type="text/css"> .titleStyle{ background-color:#008800;color:#ffffff; border-top:1px solid #FFFFFF;font-size:9pt;cursor:hand; } .contentStyle{ background-color:#eeffee;color:blue;font-size:9pt; } </style> 然后在<BODY>模块中加入以下Javascript代码: <script language="JavaScript"> <!-- var layerTop=20; //菜单顶边距 var layerLeft=30; //菜单左边距 var layerWidth=140; //菜单总宽度 var titleHeight=20; //标题栏高度 var contentHeight=200; //内容区高度 var stepNo=10; //移动步数,数值越大移动越慢 var itemNo=0; //建立一个名为"itemsLayer"的层,用它限制所有菜单的显示范围: document.write('<span id=itemsLayer style="position:absolute;overflow:hidden;border:1px solid #008800;left:'+layerLeft+';top:'+ layerTop+';width:'+layerWidth+';">'); function addItem(itemTitle,itemContent){ //这个函数准备接受菜单标题和内容的写入 //新增菜单的顶点刚好在上一菜单的标题栏以下,尺寸由一开始便声明的变量决定 itemHTML='<div id=item'+itemNo+' itemIndex='+itemNo+ ' style="position:relative;left:0; top:'+(-contentHeight*itemNo)+';width:'+layerWidth+';">'+ '<table width=100% cellspacing="0" cellpadding="0">'+ '<tr><td height='+titleHeight+ ' onclick=changeItem('+itemNo+') class="titleStyle" align=center>'+itemTitle+'</td></tr>'+ '<tr><td height='+contentHeight+' class="contentStyle">' +itemContent+'</td></tr> </table></div>'; document.write(itemHTML); itemNo++; } //这时便可以把菜单标题和内容作为参数调用以上函数了: //你可以添加任意多项,格式参照以下几行: addItem('欢迎','<BR>欢迎光临设计在线!'); addItem('网页陶吧','<center><a href="#">项目</a> <BR><BR><a href="#">项目</a> <BR><BR><a href="#">项目</a> <BR><BR><a href="#">更多..</a></center>'); addItem('美工教室','<center><a href="#">项目</a> <BR><BR><a href="#">项目</a> <BR><BR><a href="#">项目</a> <BR><BR><a href="#">更多..</a></center>'); addItem('Flash','<center><a href="#">项目</a> <BR><BR><a href="#">项目</a> <BR><BR><a href="#">项目</a> <BR><BR><a href="#">更多..</a></center>'); addItem('多媒体','<center><a href="#">项目</a> <BR><BR><a href="#">项目</a> <BR><BR><a href="#">项目</a> <BR><BR><a href="#">更多..</a></center>'); addItem('精品赏析','<a href="#">设计精品</a>'); document.write('</span>'); //结束"itemsLayer"层 //下面一式计算"itemsLayer"层的高度: document.all.itemsLayer.style.height = itemNo*titleHeight+contentHeight; //现在开始编写点击标题时移动相应的层: //初始化变量"toItemIndex"和"onItemIndex", 它们分别用于记录"应该显示的层"和"现在显示的层": var toItemIndex=itemNo-1; var onItemIndex=itemNo-1; var runtimes=0; //"runtimes"用于记录层移动次数 //菜单标题被点击时调用这个函数: function changeItem(clickItemIndex){ //判断相应的层应上移还是下移: toItemIndex=clickItemIndex; if(toItemIndex-onItemIndex>0) moveUp(); else moveDown(); //一定的时间间隔后继续移动,直到移了设定的步数stepNo: runtimes++; if(runtimes>=stepNo){ onItemIndex=toItemIndex; runtimes=0;} else setTimeout("changeItem(toItemIndex)",10); } //相应菜单上移: function moveUp(){ //判断应一起上移的菜单,并让它(们)每次移动contentHeight/stepNo的距离: for(i=onItemIndex+1;i<=toItemIndex;i++) eval('document.all.item'+i+'.style.top= parseInt(document.all.item'+i+'.style.top)-contentHeight/stepNo;'); } //相应菜单下移: function moveDown(){ for(i=onItemIndex;i>toItemIndex;i--) eval('document.all.item'+i+'.style.top= parseInt(document.all.item'+i+'.style.top)+contentHeight/stepNo;'); } changeItem(0); //把第一个菜单作为默认显示 //--> </script>(该脚本在windows 2000、windows XP及各自带的IE下测试通过)

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载


发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 闪客五周年作品展:灵光1999
  • 10.18精选 Win2003共享打印
  • [配置推荐]7000元HL2游戏配置
  • FPS顶级秘密武器 Aqua3鼠标垫
  • Messenger Plus!新功能体验
  • 扶不起的国足 《PSOBB》足球赛
  • 另类魔兽争霸简史
  • 魔兽亡灵族历代主流战术回顾
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索