full-down메뉴 자바스크립트 입니다. 정보
JavaScript full-down메뉴 자바스크립트 입니다.
본문
<script type="text/javascript"> 
<!-- 
var cssdropdown={ 
disappeardelay: 250, //set delay in miliseconds before menu disappears onmouseout
 
//No need to edit beyond here//////////////////////// 
dropmenuobj: null, ie: document.all, firefox: document.getElementById&&!document.all,
 
getposOffset:function(what, offsettype){ 
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop; 
var parentEl=what.offsetParent; 
while (parentEl!=null){ 
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
 parentEl=parentEl.offsetParent; 
} 
return totaloffset; 
}, 
showhide:function(obj, e, visible, hidden){ 
if (this.ie || this.firefox) 
this.dropmenuobj.style.left=this.dropmenuobj.style.top="-500px" 
if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover") 
obj.visibility=visible 
else if (e.type=="click") 
obj.visibility=hidden 
}, 
iecompattest:function(){ 
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
 }, 
clearbrowseredge:function(obj, whichedge){ 
var edgeoffset=0 
if (whichedge=="rightedge"){ 
var windowedge=this.ie && !window.opera? this.iecompattest().scrollLeft+this.iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
 this.dropmenuobj.contentmeasure=this.dropmenuobj.offsetWidth 
if (windowedge-this.dropmenuobj.x < this.dropmenuobj.contentmeasure)  //move menu to the left?
 edgeoffset=this.dropmenuobj.contentmeasure-obj.offsetWidth 
} 
else{ 
var topedge=this.ie && !window.opera? this.iecompattest().scrollTop : window.pageYOffset
 var windowedge=this.ie && !window.opera? this.iecompattest().scrollTop+this.iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
 this.dropmenuobj.contentmeasure=this.dropmenuobj.offsetHeight 
if (windowedge-this.dropmenuobj.y < this.dropmenuobj.contentmeasure){ //move up?
 edgeoffset=this.dropmenuobj.contentmeasure+obj.offsetHeight 
if ((this.dropmenuobj.y-topedge)<this.dropmenuobj.contentmeasure) //up no good either?
 edgeoffset=this.dropmenuobj.y+obj.offsetHeight-topedge 
} 
} 
return edgeoffset 
}, 
dropit:function(obj, e, dropmenuID){ 
if (this.dropmenuobj!=null) //hide previous menu 
this.dropmenuobj.style.visibility="hidden" 
this.clearhidemenu() 
if (this.ie||this.firefox){ 
obj.onmouseout=function(){cssdropdown.delayhidemenu()} 
this.dropmenuobj=document.getElementById(dropmenuID) 
this.dropmenuobj.onmouseover=function(){cssdropdown.clearhidemenu()} 
this.dropmenuobj.onmouseout=function(){cssdropdown.dynamichide(e)} 
this.dropmenuobj.onclick=function(){cssdropdown.delayhidemenu()} 
this.showhide(this.dropmenuobj.style, e, "visible", "hidden") 
this.dropmenuobj.x=this.getposOffset(obj, "left") 
this.dropmenuobj.y=this.getposOffset(obj, "top") 
this.dropmenuobj.style.left=this.dropmenuobj.x-this.clearbrowseredge(obj, "rightedge")+"px"
 this.dropmenuobj.style.top=this.dropmenuobj.y-this.clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+1+"px"
 } 
}, 
contains_firefox:function(a, b) { 
while (b.parentNode) 
if ((b = b.parentNode) == a) 
return true; 
return false; 
}, 
dynamichide:function(e){ 
var evtobj=window.event? window.event : e 
if (this.ie&&!this.dropmenuobj.contains(evtobj.toElement)) 
this.delayhidemenu() 
else if (this.firefox&&e.currentTarget!= evtobj.relatedTarget&& !this.contains_firefox(evtobj.currentTarget, evtobj.relatedTarget))
 this.delayhidemenu() 
}, 
delayhidemenu:function(){ 
this.delayhide=setTimeout("cssdropdown.dropmenuobj.style.visibility='hidden'",this.disappeardelay)
 }, 
clearhidemenu:function(){ 
if (this.delayhide!="undefined") 
clearTimeout(this.delayhide) 
} 
} 
//--> 
</script> 
0
 
 
댓글 0개