提示:点击代码可以查看效果<html><head><meta http-equiv=Content-Type content=text/html; charset=gb2312><title>免费
网络-网页特效-非常酷的五星展开菜单显示效果</title></head><body><style type=text/css>.dot { position: absolute; width: 6; height: 6; visibility: hidden; background-color: red; font-size: 1px; cursor: pointer; cursor: hand; z-index: 100 }.dotoff { position: absolute; width: 6; height: 6; visibility: hidden; background-color: gray; font-size: 1px; cursor:default; z-index: 100}.dotempty { position: absolute; width: 6; height: 6; visibility: hidden; background-color: orange; font-size: 1px; cursor: pointer; cursor: hand; zindex: 100 }.caption { position: absolute; visibility: hidden; font-family: Tahoma; color: black; font-size: 11px; text-align: Center; cursor: default; z-index: 1 }body { margin: 0px; background-color: white; }a { color: silver; text-decoration: none }p { font-size: 10px; font-family: tahoma; color: black } </style><script language=JavaScript type=text/javascript>function lib_bwcheck(){ //Browsercheck (needed) this.ver=navigator.appVersion this.agent=navigator.userAgent this.dom=document.getElementById?1:0 this.opera5=this.agent.indexOf(Opera 5)>-1 this.ie5=(this.ver.indexOf(MSIE 5)>-1 && this.dom && !this.opera5)?1:0; this.ie6=(this.ver.indexOf(MSIE 6)>-1 && this.dom && !this.opera5)?1:0; this.ie4=(document.all && !this.dom && !this.opera5)?1:0; this.ie=this.ie4||this.ie5||this.ie6 this.mac=this.agent.indexOf(Mac)>-1 this.ns6=(this.dom && parseInt(this.ver) >= 5) ?1:0; this.ns4=(document.layers && !this.dom)?1:0; this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5) return this}var bw=new lib_bwcheck()// The code of this script is in the body, the browsercheck above is not used.</script><script language=javascript1.2 type=text/javascript><!--// DotMenu// provides cross-browser functionality//======================================function getObjectRef(name) { if(document.getElementById) return document.getElementById(name); else if(document.all) return document.all[name]; else return null;}// general functions to assist the script//========================================function show(name) { var el = getObjectRef(name); if(el) el.style.visibility = visible;}function hide(name) { var el = getObjectRef(name); if(el) el.style.visibility = hidden;}function getWidth(name) { var el = getObjectRef(name); return el.offsetWidth;}function getHeight(name) { var el = getObjectRef(name); return el.offsetHeight;}function moveMe(name,x,y) { var el = getObjectRef(name); if(el) { el.style.top = parseInt(y); el.style.left = parseInt(x); } }function moveBy(name,x,y) { var el = getObjectRef(name); if(el) { el.style.top = parseInt(el.style.top) + parseInt(y); el.style.left = parseInt(el.style.left) + parseInt(x); } }// Creates the menu objects//==========================var menuCount = 0;function menuObject(name,x,y,caption, r, parent) { if ( (!document.getElementById&&!document.all) || navigator.userAgent.indexOf(Opera)>-1) return; document.write(<div id=divDot + menuCount + class=dotempty style=top: + y + ; left: + x + ></div>); document.write(<div id=divCap + menuCount + class=caption style=top: 0; left: 0> + caption + </div>); this.name = name; this.parent = parent this.ref = divDot + menuCount; this.caption = divCap + menuCount if(r) this.radius = r; else this.radius = 400; this.subMenus = new Array(); this.state = 0; this.moving = false; if(this.parent) this.action = null; else this.action = toggle; if(this.parent) this.startAngle = parent.startAngle; else this.startAngle = 0; getObjectRef(this.ref).objRef = this.name; this.show = function() { show(this.ref); } this.hide = function() { hide(this.ref); } this.moveMe = function(x,y) { if(this.parent) { x += this.parent.x(); y += this.parent.y(); } moveMe(this.ref,x,y); } this.moveBy = function(x,y) { moveBy(this.ref,x,y); } this.x = function() { return parseInt(getObjectRef(this.ref).style.left); } this.y = function() { return parseInt(getObjectRef(this.ref).style.top); } this.w = function() { return getWidth(this.ref); } this.h = function() { return getHeight(this.ref); } this.showCaption = function() { moveMe(this.caption, this.x() - (getWidth(this.caption)/2) + (this.w()/2), (this.y() + this.h())); show(this.caption); } this.hideCaption = function() { hide(this.caption); } this.setCaption = function(c) { getObjectRef(this.caption).innerHTML = c;} this.addItem = function(c,action,r) { getObjectRef(this.ref).className = dot; if(!r) r = this.radius/2; var sub = new menuObject(this.name + .subMenus[ + this.subMenus.length + ],0,0,c,r,this); sub.parent = this; sub.action = action; sub.moveMe(0,0); this.subMenus[this.subMenus.length] = sub; return sub; } this.expand = function() { if(this.subMenus.length > 0) { var p = true; if(this.parent) { p = !this.parent.moving; for(var i=0; i<this.parent.subMenus.length;i++) p = p && ((this.parent.subMenus[i].state==0) || (this.parent.subMenus[i].state==this.parent.subMenus[i].subMenus.length)) && (this.parent.subMenus[i].moving==false); } else var o = false; if((!this.parent || this.parent.state == this.parent.subMenus.length) && p) { if(this.parent) this.collapseAll(this.name); var diff = 360 / this.subMenus.length; for(var i=0;i<this.subMenus.length;i++){ this.subMenus[i].moveMe(0,0); this.subMenus[i].show(); this.moving = true; this.subMenus[i].slide(this.subMenus[i].radius * cos(degToRad((diff*i)+this.startAngle)), this.subMenus[i].radius * sin(degToRad((diff*i)+this.startAngle)), this.name + .subMenus[ + i + ].showCaption(); + this.name + .moving=false; + this.name + .state+=1;); } if(this.parent){ getObjectRef(this.parent.ref).style.filter = alpha (opacity=33); getObjectRef(this.parent.ref).style.MozOpacity = 33%; getObjectRef(this.parent.ref).className = dotoff; getObjectRef(this.parent.caption).style.filter = alpha (opacity=33); getObjectRef(this.parent.caption).style.MozOpacity = 33%; for(i=0;i<this.parent.subMenus.length;i++) { getObjectRef(this.parent.subMenus[i].ref).style.filter = alpha (opacity=66); getObjectRef(this.parent.subMenus[i].ref).style.MozOpacity = 66%; getObjectRef(this.parent.subMenus[i].caption).style.filter = alpha (opacity=66); getObjectRef(this.parent.subMenus[i].caption).style.MozOpacity = 66%; } if(this.parent.parent) { for(i=0;i<this.parent.parent.subMenus.length;i++) { getObjectRef(this.parent.parent.subMenus[i].ref).style.filter = alpha (opacity=33); getObjectRef(this.parent.parent.subMenus[i].ref).style.MozOpacity = 33%; getObjectRef(this.parent.parent.subMenus[i].ref).className = dotoff; getObjectRef(this.parent.parent.subMenus[i].caption).style.filter = alpha (opacity=33); getObjectRef(this.parent.parent.subMenus[i].caption).style.MozOpacity = 33%; } getObjectRef(this.parent.parent.ref).style.MozOpacity = 33%; getObjectRef(this.parent.parent.ref).style.MozOpacity = 33%; getObjectRef(this.parent.parent.ref).className = dotoff; } } getObjectRef(this.ref).style.filter = alpha (opacity=66); getObjectRef(this.caption).style.filter = alpha (opacity=66); getObjectRef(this.ref).style.MozOpacity = 66%; getObjectRef(this.caption).style.MozOpacity = 66%; } } } this.collapse = function() { var p = true; p = !this.moving; for(var i=0; i<this.subMenus.length;i++) p = p && (this.subMenus[i].state==0) && (this.subMenus[i].moving==false); if(p && this.subMenus.length > 0) { for(var i=0;i<this.subMenus.length;i++){ this.subMenus[i].hideCaption(); this.moving = true; this.subMenus[i].slide(0, 0, this.name + .subMenus[ + i + ].hide(); + this.name + .moving=false; + this.name + .state-=1;); } if(this.parent){ getObjectRef(this.parent.ref).style.filter = alpha (opacity=66); getObjectRef(this.parent.ref).style.MozOpacity = 66%; if(this.parent.subMenus.length != 0) getObjectRef(this.parent.ref).className = dot; else getObjectRef(this.parent.ref).className = dotempty; getObjectRef(this.parent.caption).style.filter = alpha (opacity=66); getObjectRef(this.parent.caption).style.MozOpacity = 66%; for(i=0;i<this.parent.subMenus.length;i++) { getObjectRef(this.parent.subMenus[i].ref).style.filter = alpha (opacity=100); getObjectRef(this.parent.subMenus[i].ref).style.MozOpacity = 100%; if(this.parent.subMenus[i].subMenus.length != 0) getObjectRef(this.parent.subMenus[i].ref).className = dot; else getObjectRef(this.parent.subMenus[i].ref).className = dotempty; getObjectRef(this.parent.subMenus[i].caption).style.filter = alpha (opacity=100); getObjectRef(this.parent.subMenus[i].caption).style.MozOpacity = 100%; } if(this.parent.parent) { for(i=0;i<this.parent.parent.subMenus.length;i++) { getObjectRef(this.parent.parent.subMenus[i].ref).style.filter = alpha (opacity=66); getObjectRef(this.parent.parent.subMenus[i].ref).style.MozOpacity = 66%; if(this.parent.parent.subMenus[i].subMenus.length != 0) getObjectRef(this.parent.parent.subMenus[i].ref).className = dot; else getObjectRef(this.parent.parent.subMenus[i].ref).className = dotempty; getObjectRef(this.parent.parent.subMenus[i].caption).style.filter = alpha (opacity=66); getObjectRef(this.parent.parent.subMenus[i].caption).style.MozOpacity = 66%; } } } getObjectRef(this.ref).style.filter = alpha (opacity=100); getObjectRef(this.caption).style.filter = alpha (opacity=100); getObjectRef(this.ref).style.MozOpacity = 100%; getObjectRef(this.caption).style.MozOpacity = 100%; } } this.collapseAll = function(except) { for(var i=0;i<this.parent.subMenus.length;i++) { if(this.parent.subMenus[i].name!=except && this.parent.subMenus[i].state==this.parent.subMenus[i].subMenus.length) { this.parent.subMenus[i].collapse(); } } } this.toggle = function(e) { if(document.all) id = window.event.srcElement; else id = e.target; var dot = eval(id.objRef); if(dot.state==0 && !dot.moving) dot.expand(); else if(dot.state==dot.subMenus.length && !dot.moving) dot.collapse() } this.doAction = function(e) { if(document.all) id = window.event.srcElement; else id = e.target; var dot = eval(id.objRef); if(dot.action == toggle) dot.toggle(e); else eval(dot.action); } //change these if you want to change the events that trigger the actions //======================================================================== //getObjectRef(this.ref).onmousemove = this.toggle; getObjectRef(this.ref).onmouseup = this.doAction; this.slide = function(xx,yy,func) { if(!func) func = ; var px = this.parent.x(); var py = this.parent.y(); var x = xx - this.x() + px; var y = yy - this.y() + py; var d = sqrt(square(xx-this.x() + px) + square(yy-this.y() + py)); var v = d/8; if(v<1) v = 1; if( (Math.abs(x) < v) && (Math.abs(y) < v) ) { moveMe(this.ref,xx + px,yy + py); if(func != ) eval(func); } else { var a = round(atan(x,y)); dx = round(v * cos(degToRad(a))); dy = round(v * sin(degToRad(a))); this.moveBy(dx,dy); setTimeout(this.name + .slide( + xx + , + yy + , + func + );,10); } } // Preoading the
windows filters. if (menuCount==0 && document.all) document.all[this.ref].style.filter = alpha (opacity=100); menuCount++; return this;}// Math functions//================var pi = Math.PI;function square(x) { return (x*x); }function sqrt(x) { return Math.sqrt(x); }function round(x) { return Math.round(x); }function rand(x,y) { return (round(Math.random()*(y-x)) + x); }function cos(x) { return Math.cos(x) }function sin(x) { return Math.sin(x) } function degToRad(x) { return ( x/(360/(2*pi)) ); }function radToDeg(x) { return ( x*(360/(2*pi)) ); }function atan(s,t) { if( s == 0.0 && t > 0.0) angle = 90.0; else if(s == 0.0 && t < 0.0) angle = 270.0; else if (s < 0.0 ) angle = 180.0 + radToDeg(Math.atan(t/s)); else if (s > 0.0 && t < 0.0) angle = 360.0 + radToDeg(Math.atan(t/s)); else { if(s==0.0) s=0.00001; angle = radToDeg(Math.atan(t/s)); } if(angle < 0.0) angle += 360.0; return angle;}//get dimentions of the pageif(document.all) pageWidth = document.body.offsetWidth-20;else pageWidth = innerWidth;if(document.all) pageHeight = document.body.offsetHeight-4;else pageHeight = innerHeight;//Create main menuvar menu = new menuObject(menu,pageWidth/2,pageHeight/2,DhtmlCentral Site Map,pageHeight/2);menu.startAngle = -90;//show menu and captionmenu.show();menu.showCaption();//Add submenusmenu.addItem(news,window.open(/news));menu.addItem(scripts,toggle);menu.addItem(tutorials,toggle);menu.addItem(forums,toggle);menu.addItem(resources,toggle);menu.subMenus[1].addItem(FoldOutMenu,window.open(/script/script22.asp));menu.subMenus[1].addItem(Loading Bar,window.open(/script/script17.asp));menu.subMenus[1].addItem(Window Script,window.open(/script/script16.asp));menu.subMenus[1].addItem(PageSlideFade,window.open(/script/script15.asp));menu.subMenus[1].addItem(Circle Menu,window.open(/script/script14.asp));menu.subMenus[1].addItem(Annimation Intro,window.open(/script/script9.asp));menu.subMenus[1].addItem(NewsSlideFade,window.open(/script/script10.asp));menu.subMenus[1].addItem(Other Scripts,window.open(/script/));menu.subMenus[2].addItem(Scripting for vs5 browsers,window.open(/tutorials/tutorial5.asp));menu.subMenus[2].addItem(Makeing a Dhtml Script,window.open(/tutorials/tutorial6.asp));menu.subMenus[2].addItem(Filters & Transitions,window.open(/tutorials/tutorial4.asp));menu.subMenus[2].addItem(Dhtml Library,window.open(/tutorials/tutorial3.asp));menu.subMenus[2].addItem(Document Size,window.open(/tutorials/tutorial2.asp));menu.subMenus[2].addItem(Dhtml Intro,window.open(/tutorials/tutorial1.asp));menu.subMenus[3].addItem(Forum listings,window.open(/forums));menu.subMenus[3].addItem(Cool Sites,window.open(/forums/forum.asp?FORUM_ID=1&CAT_ID=1&Forum_Title=Cool+sites));menu.subMenus[3].addItem(CoolMenus,window.open(/forums/forum.asp?FORUM_ID=2&CAT_ID=1&Forum_Title=CoolMenus));menu.subMenus[3].addItem(Cross Browser,window.open(/forums/forum.asp?FORUM_ID=3&CAT_ID=1&Forum_Title=Crossbrowser+DHTML));menu.subMenus[3].addItem(Scripts,window.open(/forums/forum.asp?FORUM_ID=4&CAT_ID=1&Forum_Title=DHTML+Scripts));menu.subMenus[3].addItem(General,window.open(/forums/forum.asp?FORUM_ID=6&CAT_ID=1&Forum_Title=General+DHTML+issues));menu.subMenus[3].addItem(Off-Topic,window.open(/forums/forum.asp?FORUM_ID=9&CAT_ID=1&Forum_Title=Off%2Dtopic));c = menu.subMenus[4].addItem(Cool Sites,toggle);c.startAngle = 15;menu.subMenus[4].addItem(Portals,window.open(/resources/default.asp?catid=7&cattitle=Portals));menu.subMenus[4].addItem(Script Sites,window.open(/resources/default.asp?catid=1&cattitle=Script+sites));menu.subMenus[4].addItem(Tutorials &<br>References,toggle);menu.subMenus[4].subMenus[0].addItem(Comercial Sites,window.open(/resources/default.asp?catid=5&cattitle=Commercial+sites));menu.subMenus[4].subMenus[0].addItem(Personal Sites,window.open(/resources/default.asp?catid=6&cattitle=Personal+sites));menu.subMenus[4].subMenus[0].addItem(Experimental Projects,window.open(/resources/default.asp?catid=4&cattitle=Experimental+projects));menu.subMenus[4].subMenus[3].addItem(References,window.open(/resources/default.asp?catid=8&cattitle=References));menu.subMenus[4].subMenus[3].addItem(Tutorials & Articles,window.open(/resources/default.asp?catid=9&cattitle=Tutorials+and+Articles));//--></script></body></html>