js实现简单的qq菜单

<html>
  <head><title>menu1</title>
  <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>
  </head>
  <body>
  <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+' οnclick=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>
  </body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值