您现在的位置是: 软件 > 设计在线 > 网页陶吧 > 技术平台 > JavaScript > 正文
·速成电脑精英(包分配)白领高薪一族从这里开始


-Photoshop 路径手册
-C++ Builder界面设计专辑
-Illustrator神奇渐变网格工具
-Fireworks MX插件开发入门


有趣的仿QQ面板导航菜单
2002-09-03· ·暖阳··天极设计在线

  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下测试通过)
【责任编辑:Shiny】
【发表评论】【关闭窗口】
■ 相关内容
 Photoshop制作特色导航条
 用Flash做奇妙的旋转导航条
 利用鼠标跟随做别具特色的导航条
 用表格巧妙制作导航条按钮
 金属效果导航菜单之二
 金属效果导航菜单之一
 微软栏目导航的制作
 网页导航栏全接触
 Photoshop鲜为人知的的75个技巧-导航器和动作的技巧
 FW4中文帮助--创建按钮和导航栏(2)
 FW4中文帮助--创建按钮和导航栏(1)
 Photoshop教程-3d导航按钮
 Photoshop教程-导航条2
 Photoshop教程-导航条
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!