代码封装完成啦
在这里谢谢大家对我的支持!
偶参照一些Flash站点的菜单,
用javascript仿了一个,效果还是挺Cool的.
简单地写一个使用说明:
第一步:实体化X-Menu类
用法:
var<实体变量>.newCoolMenuControl()
第二步:建立菜单项目---
用法:
<实体变量>.insertmenu(类型,Html代码,链接网址,目标)
类型:0代表菜单标题,1代表树型菜单子项目,2代表横向菜单子项目
Html代码:显示在菜单上的Html代码
链接网址:不用多说了,网址或Javascript脚本
目标:默认为空,既不在本页打开;"_blank"代表在新的页面打开
例如:
CoolMenu2.insertmenu("2","<imgsrc=http://www.blueidea.com/img/icon/arrow.gif>新浪网","http://www.sina.com.cn/","_blank")
第三步:建立菜单---
用法:
<实体变量>.init(实体变量名,边框颜色,背景颜色,滑动速度,背景半透明度)
'实体变量名'必须与<实体变量>相同
如果背景颜色="transparent"既为完全透明
例如:
CoolMenu1.init("CoolMenu1","#002000","#38FFff",0.1,15)
function CoolMenuControl(){ //-----常规变量--- this.lastScrollX=0; this.lastScrollY=0; this.lastScrollW=0; this.lastScrollH=0; this.td_X=0; this.td_Y=0; this.td_W=0; this.td_H=0; this.td=0; this.mouseon=0; this.current=null this.hk_name; this.hktable_name; this.menudiv_name; this.menutable_name; this.ml=0; this.menuarray=new Array(); this.speed; this.href=""; //-----菜单项目--- function menuitem(type,value,url,target){ this.type=type this.value=value this.url=url this.target=target } //-----插入菜单--- this.insertmenu=function(type,value,url,target){ this.menuarray[this.menuarray.length]=new menuitem(type,value,url,target) } //-----程序初试化--- this.init=function(name,bdc,bgc,speed,Alpha){ var inhtml="" var cellcount=0 var lastcellcount=0 this.hk_name=name+"hk" this.hktable_name=name+"hktable" this.menudiv_name=name+"menudiv" this.menutable_name=name+"menutable" this.speed=speed for (i=0;i0)percentX=Math.ceil(percentX); else percentX=Math.floor(percentX); if(percentY>0)percentY=Math.ceil(percentY); else percentY=Math.floor(percentY); if(percentW>0)percentW=Math.ceil(percentW); else percentW=Math.floor(percentW); if(percentH>0)percentH=Math.ceil(percentH); else percentH=Math.floor(percentH); eval(this.hk_name).style.pixelTop+=percentY; eval(this.hk_name).style.pixelLeft+=percentX; eval(this.hktable_name).style.pixelWidth+=percentW; eval(this.hktable_name).style.pixelHeight+=percentH; this.lastScrollX=this.lastScrollX+percentX; this.lastScrollY=this.lastScrollY+percentY; this.lastScrollW=this.lastScrollW+percentW; this.lastScrollH=this.lastScrollH+percentH; } //-----滑出--- this.doOver=function() { if (event.srcElement.tagName=="TD") { if (event.srcElement.innerText.length==0 || event.srcElement.innerText=="|") return this.posXY(event.srcElement) this.td_W=event.srcElement.scrollWidth+6 this.td_H=event.srcElement.scrollHeight } } //-----绝对定位--- this.posXY=function(obj){ hk_left=obj.offsetLeft hk_top=obj.offsetTop vParent = obj.offsetParent; while (vParent.tagName.toUpperCase() != "BODY") { hk_left += vParent.offsetLeft; hk_top += vParent.offsetTop; vParent = vParent.offsetParent; } this.td_X=hk_left this.td_Y=hk_top } //-----关于--- this.about=function(){ alert("OK") } } .b{color=#000066;cursor:hand} .menu { font-family:Arial; cursor:Default; font-size:12px; border:1px #000000 solid; border-collapse: collapse; filter:progid:DXImageTransform.Microsoft.Gradient(gradienttype=0, startcolorstr=#ffffff, endcolorstr=#dddddd) progid:DXImageTransform.Microsoft.Shadow(direction=135,color=#cccccc,strength=3); } .ht{ font-weight:bold } CoolMenu1.insertmenu("0","欢迎使用X-Menu (菜单演示) Made By PuterJam","","") CoolMenu1.insertmenu("0"," ","http://www.blueidea.com/","_blank") CoolMenu2.insertmenu("0","
横向菜单","","") CoolMenu2.insertmenu("2","
新浪网","http://www.sina.com.cn/","_blank") CoolMenu2.insertmenu("2","
我的雅虎","http://cn.yahoo.com/","_blank") CoolMenu2.insertmenu("2","
亿唐","http://www.etang.com/","_blank") CoolMenu2.insertmenu("2","
21世纪","http://www.21cn.com/","_blank") CoolMenu2.insertmenu("2","
游侠网","http://www.ali213.net/","_blank") CoolMenu3.insertmenu("0","
树形菜单","","") CoolMenu3.insertmenu("0","
","http://www.blueidea.com/","_blank") CoolMenu3.insertmenu("1","关于X-Menu菜单","javascript:alert(about[0])","") CoolMenu3.insertmenu("1","关于作者","javascript:alert(about[1])","") CoolMenu3.insertmenu("1","联系我","mailto:PuterJam@etang.com","") CoolMenu3.insertmenu("1","你的浏览器版本","javascript:alert(navigator.appName)","")
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
【一个很Cool的JS菜单效果】相关文章:
★ 链接渐变效果
★ 打字效果
★ 二级连动菜单
★ 载入进度条 效果