当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 一个短小精悍使用的对象化QQ菜单

Javascript
一个简单的收缩菜单效果
HTML-CSS群中单选引发的“事件”
打开超链需要“确认”对话框的方法
用js实现网页上模仿桌面右键菜单
可以文本显示的公告栏的js代码
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
极致之美:百行代码实现全新智能语言
表单(FORM)的一些实用效果代码
[原创]提供复制本站内容时出现,该文章转自等字样的js代码
javascript中巧用“闭包”实现程序的暂停执行功能
给网站上的广告“加速”显示的方法
[原创]jser必看的破解javascript各种加密的反向思维方法
用javascript代替marquee的滚动字幕效果代码
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
[原创]由亿起发(eqifa.com)的页面发现顶部的http://16a.us/8.js想到的js解密
[原创]站长必须要知道的javascript广告代码
js defineSetter -给js的 "class"自动增加一个set的属性(方法)
Javascript & DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
WordPress 插件:CoolCode使用方法与下载
文档处理系列:随时更新

Javascript 中的 一个短小精悍使用的对象化QQ菜单


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 254 ::
收藏到网摘: n/a

这是我根据1000script上的QQ菜单自己该的一个对象化菜单,短小精悍,实用性强,我们所做的软件就用的这个。现在贡献出来,和大家共享:

<style type="text/css">
  .titleStyle{
      background-color:#6699CC;color:#ffffff;
      border-top:1px solid #FFFFFF;font-size:9pt;cursor:hand;
  }
  .contentStyle{
      background-color:#efefef;color:blue;font-size:9pt;
  }
</style>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=javascript>
<!--

var mMenu=new Array()

var headHeight = 22;//每个标题的高度
var bodyHeight = 260;//母体高度
var objcount = 6;//项目的个数,要改变了项目的个数别忘了该这个东西
var step = 6;//移动速度(请确认可以被'bodyHeight-headHeight'整除,当前的设定可选速度为1,2,3,6,23,138)
var moving = false;//是否有移动的项目
var layerTop=50;       //菜单顶边距
var layerLeft=50;      //菜单左边距
var layerWidth=140;    //菜单总宽度
var titleHeight=20;    //标题栏高度
var contentHeight=200; //内容区高度
var stepNo=1;         //移动步数,数值越大移动越慢
var itemNo=0;


function regsterMenu(menu){
mMenu[mMenu.length]=menu;
return mMenu.length-1;
}

function mainMenu(img,capture,hrefurl){
this.items=new Array();
this.img=img;
this.capture=capture;
this.hrefurl=hrefurl;
this.id=regsterMenu(this);
}

//img 是作为图标的图像位置

//capture 是连接的文字

//href是超连接的地址

function subMenu(img,capture,hrefurl){
this.img=img;
this.capture=capture;
this.hrefurl=hrefurl;
}

function addSub(item){
this.items[this.items.length]=item;
}

mainMenu.prototype.addSub=addSub;


function generateHtml(mmenu){
var menuHTML="";
menuHTML+="<span id=itemsLayer style=\"position:absolute;overflow:hidden;border:1px solid #008800;left:'"+layerLeft+"';top:'"+layerTop+"';width:'"+layerWidth+"';\">"
for(var i=0;i<mmenu.length;i++){
menuHTML+="<div id=item"+i+" style=\"LEFT: 0px; WIDTH: "+layerWidth+"; POSITION: relative; TOP:-"+contentHeight*i+"px\" itemIndex=\""+i+"\"><TABLE cellSpacing=0 cellPadding=0 width=\"100%\"><TBODY><TR><TD class=titleStyle onclick=changeItem("+i+") align=middle height="+titleHeight+">"+mmenu[i].capture+"</TD></tr>"
if(mmenu[i].items.length!=0){
menuHTML+="<TR><TD class=contentStyle height=200><div style=\"overflow:auto;height:200;\">"            
for(var q=0;q<mmenu[i].items.length;q++){
menuHTML+="<BR><CENTER>"+mmenu[i].items[q].capture+"</CENTER>"
}
menuHTML+="</div></TD></TR>"
}
menuHTML+="</TBODY></TABLE></DIV>"
}
menuHTML+="</span>"
return menuHTML;
}


var mm1=new mainMenu('#','我的收藏夹','#');
mm1.addSub(new subMenu('#','娱乐世界','#'));
mm1.addSub(new subMenu('#','娱乐世界','#'));
mm2=new mainMenu('#','我的收藏夹','#');
mm2.addSub(new subMenu('#','娱乐世界','#'));
mm3=new mainMenu('#','我的收藏夹','#');
mm3.addSub(new subMenu('#','娱乐世界','#'));
mm4=new mainMenu('#','我的收藏夹','#');
mm4.addSub(new subMenu('#','娱乐世界','#'));
mm4.addSub(new subMenu('#','娱乐世界','#'));

document.write (generateHtml(mMenu));
document.all.itemsLayer.style.height =mMenu.length*titleHeight+contentHeight;


//************************************************************

 var toItemIndex=mMenu.length-1;
 var onItemIndex=mMenu.length-1;
 var runtimes=0;  //"runtimes"用于记录层移动次数
  //菜单标题被点击时调用这个函数:
 function changeItem(clickItemIndex){
//myid.innerText=" "+itemsLayer.outerHTML+" "
    //判断相应的层应上移还是下移:
   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>


//本程序版权归 zhjzh_zjz .代码可以随便传播。