메뉴 보이기
Profile
이온디

2009.01.20

Script

가로 세로가 호환되는 메뉴

조회 수 4127 추천 수 0
menu_show-hide_layers_3step.png

<BODY>
<script language="javascript">
<!--
///////////////////////////////////////////// 
//         :*: Happyscript :*:             // 
// 소스 : http://www.happyscript.net       // 
// 편집 and 소스 설명 : Magic              // 
// E-mail : happyscript@hanmail.net        // 
///////////////////////////////////////////// 

// <body>와 </body>사이에 넣어주세요..

function Go(){return}

// 주석이 없는 라인은 주석 붙인이도 모름 --;; 아시는 분 주석 붙여주세요.
        var NoOffFirstLineMenus=5; // 아래 메뉴 갯수 (메인에서 맨첨 눈에 보이는 테이블 수로 이해하면 빠를듯)
                                      // 여기서는 Menu1,Menu2,Menu3,Menu4,Menu5 이므로 5개
                                         // Menu2_2는 메뉴갯수에 포함되지 않는다. 2번 메뉴의 보조이기 때문에
        var LowBgColor='#F2F2F2'; // 메뉴 배경색
        var HighBgColor='#dfdfff'; // 메뉴에 마우스 올렸을때 색
        var FontLowColor='black'; // 메뉴 글자색
        var FontHighColor='black'; // 메뉴 글자에 마우스 올렸을때 색
        var BorderColor='black'; // 메뉴 테두리 색
        var BorderWidth=1; // 겉 테두리 설정 (0 : 없음 , 1 : 있음)
        var BorderBtwnElmnts=1; // 테두리안 가로선 세로선 설정 (0 : 없음 , 1 : 있음)
        var FontFamily="굴림체" // 글자체 (여러개 설정시는 ,로 구분)
        var FontSize=9; // 글자 크기 
        var FontBold=1; // 글자 굵기 설정 (0 : 없음 , 1 : 있음)
        var FontItalic=0; // 글자 기울임 설정 (0 : 없음 , 1 : 있음) 
        var MenuTextCentered=0; // 글자 중간 배치 (0 : 없음 , 1 : 있음)
        var MenuCentered='left'; // 전체 메뉴 위치 (좌, 중앙, 우)
        var MenuVerticalCentered='top'; // 전체 메뉴 위치 (상, 하)
        var ChildOverlap=.0; // 하위메뉴 정렬 - 좌 우 (0 : 겹침 , 1 : 안겹침)
        var ChildVerticalOverlap=.0; //  하위메뉴 정렬 - 상 하 (0 : 겹침 , 1 : 안겹침)
        var StartTop=0; // 브라우저와 위쪽 공간 설정 (0 : 없음 , 1 : 있음)
        var StartLeft=0; // 브라우저와 왼쪽 공간 설정 - (0 : 없음 , 1 : 있음)
        var VerCorrect=0; 
        var HorCorrect=0; 
        var LeftPaddng=3; // 테이블 왼쪽 라인과 글자사이 공간 설정
        var TopPaddng=2; // 테이블 위쪽 라인과 글자사이 공간 설정
        var FirstLineHorizontal=1; // 메뉴 정렬 방법 (0 : 세로 , 1 : 가로) 
        var MenuFramesVertical=0; 
        var DissapearDelay=500;
        var TakeOverBgColor=1;
        var FirstLineFrame='navig';
        var SecLineFrame='space';
        var DocTargetFrame='space';
        var WebMasterCheck=0;

// 메뉴 설정 부분 (이해하기 쉬움 ^^)
// 화살표는 가로용으로 되어었습니다. 세로용에서는 화살표가 맞지 않으니 수정하신 후 사용하세요.

// 화살표가 있는 부분은 마우스를 올리면 하위 메뉴를 나타내는 부분이다
// 그래서 경로 적는 부분을 #으로 해줘야 한다
// #으로 해주지 않고 경로를 적어도 되지만 그 부분을 누르면 적힌 경로대로 연결이 되어 버린다.
// ("메뉴명","경로",하위메뉴 갯수,메뉴 세로크기,메뉴 가로크기)

Menu1=new Array("Home","http://www.happyscript.net",0,20,150);

Menu2=new Array("Menu 01     (▼)","#",2);
        Menu2_1=new Array("Menu 01-1     (▶)","#",5,20,150);
                Menu2_1_1=new Array("Menu 01-1-1","#",0,20,150);
                Menu2_1_2=new Array("Menu 01-1-2","#",0);
                Menu2_1_3=new Array("Menu 01-1-3","#",0);
                Menu2_1_4=new Array("Menu 01-1-4","#",0);
                Menu2_1_5=new Array("Menu 01-1-5     (▶)","#",2);
                          Menu2_1_5_1=new Array("Menu 01-1-1-1","#",0,20,150);
                          Menu2_1_5_2=new Array("Menu 01-1-1-2","#",0);
        Menu2_2=new Array("Menu 01-2     (▶)","#",3);
                Menu2_2_1=new Array("Menu 01-2-1","#",0,20,150);
                Menu2_2_2=new Array("Menu 01-2-2     (▶)","#",6);
                          Menu2_2_2_1=new Array("Menu 01-2-2-1","#",0,20,150);
                          Menu2_2_2_2=new Array("Menu 01-2-2-2","#",0);
                          Menu2_2_2_3=new Array("Menu 01-2-2-3","#",0);
                          Menu2_2_2_4=new Array("Menu 01-2-2-4","#",0);
                          Menu2_2_2_5=new Array("Menu 01-2-2-5","#",0);
                          Menu2_2_2_6=new Array("Menu 01-2-2-6","#",0);
                Menu2_2_3=new Array("Menu 01-2-3","#",0);

Menu3=new Array("Menu 02     (▼)","#",3);
                Menu3_1=new Array("Menu 02-1     (▶)","#",1,20,150);
                        Menu3_1_1=new Array("Menu 02-1-1","#",0,20,150); 
                Menu3_2=new Array("Menu 02-2","#",0);
                Menu3_3=new Array("Menu 02-3     (▶)","#",9);
                        Menu3_3_1=new Array("Menu 02-3-1","#",0,20,150); 
                              Menu3_3_2=new Array("Menu 02-3-2","#",0);
                              Menu3_3_3=new Array("Menu 02-3-3","#",0);
                              Menu3_3_4=new Array("Menu 02-3-4","#",0);
                              Menu3_3_5=new Array("Menu 02-3-5","#",0);
                              Menu3_3_6=new Array("Menu 02-3-6","#",0);
                              Menu3_3_7=new Array("Menu 02-3-7","#",0);
                              Menu3_3_8=new Array("Menu 02-3-8","#",0);
                              Menu3_3_9=new Array("Menu 02-3-9","#",0);
                                        
Menu4=new Array("Menu 03     (▼)","#",4);
                Menu4_1=new Array("Menu 03-1","#",0,20,150);
                 Menu4_2=new Array("Menu 03-2","#",0);
                     Menu4_3=new Array("Menu 03-3","#",0);
                Menu4_4=new Array("Menu 03-4","#",0);

Menu5=new Array("Help     (▼)","#",1);
                 Menu5_1=new Array("E-mail","mailto:happyscript@hanmail.net",0,20,150);

// 소스 수정 불가 부분..
        var AgntUsr=navigator.userAgent.toLowerCase();
        var DomYes=(document.getElementById)?1:0;                                
        var NavYes=(AgntUsr.indexOf('mozilla')!=-1&&AgntUsr.indexOf('compatible')==-1)?1:0;        
        var ExpYes=(AgntUsr.indexOf('msie')!=-1)?1:0;                                
        var Opr5=(AgntUsr.indexOf('opera 5')!=-1||AgntUsr.indexOf('opera/5')!=-1)?1:0;        
        var DomNav=(DomYes&&NavYes)?1:0;                                        
        var DomExp=(DomYes&&ExpYes)?1:0;                                        
        var Nav4=(NavYes&&!DomYes&&document.layers)?1:0;                        
        var Exp4=(ExpYes&&!DomYes&&document.all)?1:0;                                
        var PosStrt=((NavYes||ExpYes)&&!Opr5)?1:0;                                
        if(AgntUsr.indexOf('mac')!=-1&&DomExp){DomExp=0;Exp4=1}

        var FirstLocation,SecLocation,DocLocation;
        var SecWindowWidth,FirstWindowWidth,FirstWindowHeight;
        var SecLoadAgainWin;
        var FirstColPos,SecColPos,DocColPos;
        var InitRecursLevel=0,CreateRecursLevel=0,PosRecursLevel=0;
        var ShowFlag=0,FirstCreate=1,Loaded=0,Created=0,InitFlag,AcrossFrames=1;
        var FirstContainer=null,CurrentOver=null,CloseTimer=null;
        var CenterText,TxtClose,ImgStr;
        var Ztop=100;
        var M_StartTop=StartTop,M_StartLeft=StartLeft;
        var LeftExtra=(DomNav)?LeftPaddng:0;
        var TopExtra=(DomNav)?TopPaddng:0;
        var M_Hide=(Nav4)?'hide':'hidden';
        var M_Show=(Nav4)?'show':'visible';
        var Par=(parent.frames[0])?parent:window;
        var Doc=Par.document;
        var Bod=Doc.body;
        var Trigger=(NavYes||Opr5)?Par:Bod;
        WebMasterAlerts=["No such frame: ","Item not defined: ","Item needs height: ","Item needs width: ","Warning-Item doesn't need height: ","Warning-Item doesn't need width: ","Item Oke ","Menu tree oke"];
        if(DomNav&&!Opr5)Trigger.addEventListener('load',Go,false);
        else Trigger.onload=Go;
        Trigger.onresize=(Nav4)?ReDoWhole:RePos;

function cancelselect(){return false}

function RePos(){
        FirstWindowWidth=(ExpYes)?FirstLocation.document.body.clientWidth:FirstLocation.innerWidth;
        FirstWindowHeight=(ExpYes)?FirstLocation.document.body.clientHeight:FirstLocation.innerHeight;
        SecWindowWidth=(ExpYes)?SecLocation.document.body.clientWidth:SecLocation.innerWidth;
        SecWindowHeight=(ExpYes)?SecLocation.document.body.clientHeight:SecLocation.innerHeight;
        if(MenuCentered)CalcLeft();
        if(MenuVerticalCentered)CalcTop();
        PositionMenuStruct(FirstContainer,StartTop,StartLeft)}

function UnLoaded(){
        if(CloseTimer)clearTimeout(CloseTimer);Loaded=0; Created=0;
        var FCStyle=(Nav4)?FirstContainer:FirstContainer.style;
        FCStyle.visibility=M_Hide}

function ReDoWhole(){
        Doc.location.reload()}

function Check(WhichMenu,NoOf){
        var i,Hg,Wd,La,Li,Nof,array,ArrayLoc=parent.frames[FirstLineFrame];
        for(i=0;i<NoOf;i++){
                array=WhichMenu+eval(i+1);
                if(!ArrayLoc[array]){WebMasterAlert(1,array); return false}
                La=ArrayLoc[array][0]; Li=ArrayLoc[array][1]; Nof=ArrayLoc[array][2];
                if(i==0){        if(!ArrayLoc[array][3]){WebMasterAlert(2,array); return false}
                        if(!ArrayLoc[array][4]){WebMasterAlert(3,array); return false}
                        Hg=ArrayLoc[array][3]; Wd=ArrayLoc[array][4]}
                else{        if(ArrayLoc[array][3])WebMasterAlert(4,array);
                        if(ArrayLoc[array][4])WebMasterAlert(5,array)}
                if(!WebMasterAlert(6,'nn'+array+'nwidth: '+Wd+'nheight: '+Hg+'nLabel: '+La+'nLink: '+Li+'nNo of sub items: '+Nof)){WebMasterCheck=0; return true}
                if(ArrayLoc[array][2])if(!Check(array+'_',ArrayLoc[array][2])) return false}
        return true}        

function WebMasterAlert(No,Xtra){
        if(WebMasterCheck)return confirm(WebMasterAlerts[No]+Xtra+'   ')}

function Go(){
        if(Loaded||!PosStrt)return;
        Created=0; Loaded=1;
        status='Loading Menu...';
        if(FirstCreate){
                if(!parent.frames[FirstLineFrame]){WebMasterAlert(0,FirstLineFrame); FirstLineFrame=SecLineFrame}
                if(!parent.frames[FirstLineFrame]){WebMasterAlert(0,SecLineFrame); FirstLineFrame=SecLineFrame=DocTargetFrame}
                if(!parent.frames[FirstLineFrame]){WebMasterAlert(0,DocTargetFrame); FirstLineFrame=SecLineFrame=DocTargetFrame=(parent.frames[0])?parent.frames[0].name:''}
                if(!parent.frames[SecLineFrame]){WebMasterAlert(0,SecLineFrame);SecLineFrame=DocTargetFrame}
                if(!parent.frames[SecLineFrame]){WebMasterAlert(0,DocTargetFrame);SecLineFrame=DocTargetFrame=FirstLineFrame}
                if(!parent.frames[DocTargetFrame]){WebMasterAlert(0,DocTargetFrame);DocTargetFrame=SecLineFrame}
                if(WebMasterCheck){if(!Check('Menu',NoOffFirstLineMenus))return;else WebMasterAlert(7,'')}
                FirstLocation=(FirstLineFrame)?parent.frames[FirstLineFrame]:window;
                SecLocation=(SecLineFrame)?parent.frames[SecLineFrame]:window;
                DocLocation=(DocTargetFrame)?parent.frames[DocTargetFrame]:window;
                if (FirstLocation==SecLocation) AcrossFrames=0;
                if (AcrossFrames)FirstLineHorizontal=(MenuFramesVertical)?0:1;
                FirstWindowWidth=(ExpYes)?FirstLocation.document.body.clientWidth:FirstLocation.innerWidth;
                FirstWindowHeight=(ExpYes)?FirstLocation.document.body.clientHeight:FirstLocation.innerHeight;
                SecWindowWidth=(ExpYes)?SecLocation.document.body.clientWidth:SecLocation.innerWidth;
                SecWindowHeight=(ExpYes)?SecLocation.document.body.clientHeight:SecLocation.innerHeight;
                if(MenuCentered) CalcLeft();
                if(MenuVerticalCentered) CalcTop();
                if(!DomYes){CenterText=(MenuTextCentered)?(NavYes)?"<div align='center'>":"align='center'":"";
                        if(NavYes)TxtClose="</font>"+(MenuTextCentered)?"</div>":""}}
        FirstColPos=(Nav4)?FirstLocation.document:FirstLocation.document.body;
        SecColPos=(Nav4)?SecLocation.document:SecLocation.document.body;
        DocColPos=(Nav4)?DocLocation.document:SecLocation.document.body;
        if (TakeOverBgColor)FirstColPos.bgColor=(AcrossFrames)?SecColPos.bgColor:DocColPos.bgColor;
        if(FirstCreate){FirstContainer=CreateMenuStructure('Menu',NoOffFirstLineMenus);FirstCreate=0}
        else CreateMenuStructureAgain('Menu',NoOffFirstLineMenus);
        PositionMenuStruct(FirstContainer,StartTop,StartLeft);
        InitFlag=1;        Initiate(); InitFlag=0; Created=1; 
        SecLoadAgainWin=(ExpYes)?SecLocation.document.body:SecLocation;
        SecLoadAgainWin.onunload=UnLoaded;
        //if(ExpYes){SecLocation.document.body.onselectstart=cancelselect;FirstLocation.document.body.onselectstart=cancelselect}
        status='메뉴를 선택하세요. - http://www.happyscript.net'}

function CalcLeft(){
        var Size=FirstWindowWidth;
        if(MenuCentered!='left'){
                StartLeft=M_StartLeft;
                Size-=(FirstLineHorizontal)?(NoOffFirstLineMenus*(eval('Menu1[4]')+BorderWidth)+BorderWidth):(eval('Menu1[4]')+BorderWidth);
                if(MenuCentered=='right')StartLeft+=Size; else StartLeft+=Size/2}}

function CalcTop(){
        var Size=FirstWindowHeight;
        if(MenuVerticalCentered!='top'){        
                StartTop=M_StartTop;
                Size-=(FirstLineHorizontal)?(eval('Menu1[3]')+BorderWidth):(NoOffFirstLineMenus*(eval('Menu1[3]')+BorderWidth)+BorderWidth);
                if(MenuVerticalCentered=='bottom')StartTop+=Size; else StartTop+=Size/2}}

function PositionMenuStruct(CntnrPntr,Tp,Lt){
        var Topi,Lefti,Hori;
        var Cntnr=CntnrPntr;
        var Mmbr=Cntnr.FirstMember;
        var CntnrStyle=(!Nav4)?Cntnr.style:Cntnr;
        var MmbrStyle=(!Nav4)?Mmbr.style:Mmbr;
        var PadLeft=(Mmbr.value.indexOf('<')==-1)?LeftExtra:0;
        var PadTop=(Mmbr.value.indexOf('<')==-1)?TopExtra:0;
        var MmbrWidth=(!Nav4)?parseInt(MmbrStyle.width)+PadLeft:MmbrStyle.clip.width;
        var MmbrHeight=(!Nav4)?parseInt(MmbrStyle.height)+PadTop:MmbrStyle.clip.height;
        var CntnrWidth=(!Nav4)?parseInt(CntnrStyle.width):CntnrStyle.clip.width;
        var CntnrHeight=(!Nav4)?parseInt(CntnrStyle.height):CntnrStyle.clip.height;
        var SubTp,SubLt;
        PosRecursLevel++;
        if (PosRecursLevel==1 && AcrossFrames)(!MenuFramesVertical)?Tp=FirstWindowHeight-CntnrHeight+((Nav4)?4:0):Lt=FirstWindowWidth-CntnrWidth;
        if (PosRecursLevel==2 && AcrossFrames)(!MenuFramesVertical)?Tp=0:Lt=0;
        if (PosRecursLevel==2 && AcrossFrames){Tp+=VerCorrect;Lt+=HorCorrect}
        CntnrStyle.top=Cntnr.OrgTop=Tp;
        CntnrStyle.left=Cntnr.OrgLeft=Lt;
        if (PosRecursLevel==1 && FirstLineHorizontal){Hori=1; Lefti=CntnrWidth-MmbrWidth-2*BorderWidth;Topi=0}
        else{Hori=Lefti=0; Topi=CntnrHeight-MmbrHeight-2*BorderWidth}
        while(Mmbr!=null){
                PadLeft=(Mmbr.value.indexOf('<')==-1)?LeftExtra:0;
                PadTop=(Mmbr.value.indexOf('<')==-1)?TopExtra:0;
                MmbrStyle=(!Nav4)?Mmbr.style:Mmbr;
                MmbrWidth=(!Nav4)?parseInt(MmbrStyle.width)+PadLeft:MmbrStyle.clip.width;
                MmbrHeight=(!Nav4)?parseInt(MmbrStyle.height)+PadTop:MmbrStyle.clip.height;
                MmbrStyle=(!Nav4)?Mmbr.style:Mmbr;
                MmbrStyle.left=Lefti+BorderWidth;
                MmbrStyle.top=Topi+BorderWidth;
                if(Nav4)Mmbr.CmdLyr.moveTo(Lefti+BorderWidth,Topi+BorderWidth);
                if(Mmbr.ChildCntnr){
                        if(Hori){        SubTp=Tp+Topi+MmbrHeight+BorderWidth; SubLt=Lt+Lefti}
                        else{        SubLt=Lt+Lefti+(1-ChildOverlap)*MmbrWidth+BorderWidth; SubTp=Tp+Topi+ChildVerticalOverlap*MmbrHeight}
                        PositionMenuStruct(Mmbr.ChildCntnr,SubTp,SubLt)}
                (Hori)?Lefti-=(BorderBtwnElmnts)?(MmbrWidth+BorderWidth):(MmbrWidth):Topi-=(BorderBtwnElmnts)?(MmbrHeight+BorderWidth):(MmbrHeight);
                Mmbr=Mmbr.PrevMember}
        PosRecursLevel--}

function Initiate(){
        if(InitFlag) Init(FirstContainer)}

function Init(CntnrPntr){
        var MemberContainer=CntnrPntr;
        var Member=MemberContainer.FirstMember;
        var MCStyle=(Nav4)?MemberContainer:MemberContainer.style;
        InitRecursLevel++;
        MCStyle.visibility=(InitRecursLevel==1)?M_Show:M_Hide;
        while(Member!=null){
                if(Member.ChildCntnr) Init(Member.ChildCntnr);
                Member=Member.PrevMember}
        InitRecursLevel--}

function ClearAllChilds(Pntr,ChldPntr){
        var CPCCStyle;
        while (Pntr){
                if(Pntr.ChildCntnr){
                        CPCCStyle=(Nav4)?Pntr.ChildCntnr:Pntr.ChildCntnr.style;
                        if(Pntr.ChildCntnr!=ChldPntr)CPCCStyle.visibility=M_Hide;
                        ClearAllChilds(Pntr.ChildCntnr.FirstMember,ChldPntr)}
                Pntr=Pntr.PrevMember}}        

function GoTo(){
        if(this.LinkTxt){
                status=''; 
                if(Nav4){        if(this.LowLyr.value.indexOf('<img')==-1){
                                this.LowLyr.bgColor=this.LowLyr.LowBack;
                                this.LowLyr.document.write(this.LowLyr.value);
                                this.LowLyr.document.close()}}
                else{        this.style.backgroundColor=this.LowBack;
                        this.style.color=this.LowFontColor}
                (this.LinkTxt.indexOf('javascript:')!=-1)?eval(this.LinkTxt):DocLocation.location.href=this.LinkTxt}}

function OpenMenu(){
        if(!Loaded||!Created) return;
        var TopScrolled=(AcrossFrames)?(ExpYes)?SecLocation.document.body.scrollTop:SecLocation.pageYOffset:0;
        var LeftScrolled=(AcrossFrames)?(ExpYes)?SecLocation.document.body.scrollLeft:SecLocation.pageXOffset:0;
        var ChildCont=(Nav4)?this.LowLyr.ChildCntnr:this.ChildCntnr;
        var ThisHeight=(Nav4)?this.clip.height:parseInt(this.style.height);
        var ThisWidth=(Nav4)?this.clip.width:parseInt(this.style.width);
        CurrentOver=this; InitFlag=0;
        if(ShowFlag){
                ClearAllChilds(this.Container.FirstMember,ChildCont); 
                if(this.Level==1) ShowFlag=0}
        if(Nav4){        if(this.LowLyr.value.indexOf('<img')==-1){
                        this.LowLyr.bgColor=this.LowLyr.HighBack;
                        this.LowLyr.document.write(this.LowLyr.Overvalue);
                        this.LowLyr.document.close()}}
        else{        this.style.backgroundColor=this.HighBack;
                this.style.color=this.HighFontColor}
        if(ChildCont!=null)        {
                var ChildContWidth=(Nav4)?this.LowLyr.ChildCntnr.clip.width:parseInt(this.ChildCntnr.style.width);
                var ChildContHeight=(Nav4)?this.LowLyr.ChildCntnr.clip.height:parseInt(this.ChildCntnr.style.height);
                var ChCntTL=(Nav4)?this.LowLyr.ChildCntnr:this.ChildCntnr.style;
                var SubLt=ChildCont.OrgLeft+LeftScrolled;
                var SubTp=ChildCont.OrgTop+TopScrolled;
                while(SubLt+ChildContWidth>SecWindowWidth+LeftScrolled){
                        if(this.Level==1)SubLt=SecWindowWidth+LeftScrolled-ChildContWidth;
                        else SubLt-=ChildContWidth}
                while(SubTp+ChildContHeight>TopScrolled+SecWindowHeight){
                        if(this.Level==1)SubTp=TopScrolled+SecWindowHeight-ChildContHeight;
                        SubTp-=ChildContHeight}
                ChCntTL.top=SubTp;
                ChCntTL.left=SubLt;
                ChCntTL.visibility=M_Show;
                ShowFlag=1}
        status=this.LinkTxt}        

function CloseMenu(){
        if(!Loaded||!Created) return;
        if(Nav4){if(this.LowLyr.value.indexOf('<img')==-1){
                this.LowLyr.bgColor=this.LowLyr.LowBack;
                this.LowLyr.document.write(this.LowLyr.value);
                this.LowLyr.document.close()}}
        else{        this.style.backgroundColor=this.LowBack;
                this.style.color=this.LowFontColor}
        status='';
        if(this==CurrentOver){
                InitFlag=1;
                if (CloseTimer) clearTimeout(CloseTimer);
                CloseTimer=setTimeout('Initiate(CurrentOver)',DissapearDelay)}}

function ContainerSetUp(Wdth,Hght,NoOff){
        this.FirstMember=null;
        this.OrgLeft=0;
        this.OrgTop=0;
        if (CreateRecursLevel==1&&FirstLineHorizontal){
                Wdth=(BorderBtwnElmnts)?NoOff*(Wdth+BorderWidth)+BorderWidth:NoOff*Wdth+2*BorderWidth;
                Hght+=2*BorderWidth}
        else{         Hght=(BorderBtwnElmnts)?NoOff*(Hght+BorderWidth)+BorderWidth:NoOff*Hght+2*BorderWidth;
                Wdth+=2*BorderWidth}
        if(Nav4){        this.visibility='hide';
                this.bgColor=BorderColor;
                this.resizeTo(Wdth,Hght)}
        else{        this.Level=CreateRecursLevel;
                this.style.backgroundColor=BorderColor;
                this.style.width=Wdth;
                this.style.height=Hght;
                this.style.fontFamily=FontFamily;
                this.style.fontWeight=(FontBold)?'bold':'normal';
                this.style.fontStyle=(FontItalic)?'italic':'normal';
                this.style.fontSize=FontSize+'pt';
                this.style.zIndex=CreateRecursLevel+Ztop}}

function MemberSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght){
        var Location=(CreateRecursLevel==1)?FirstLocation:SecLocation;
        var MemVal=eval(WhatMenu+'[0]');
        var t,T,L,W,H,S;
        this.value=MemVal;
        this.ChildCntnr=null;
        this.PrevMember=PrMmbr;
        this.Level=CreateRecursLevel;
        this.LinkTxt=eval(WhatMenu+'[1]');
        this.Container=MmbrCntnr;
        this.style.cursor='default';
        if(MemVal.indexOf('<')==-1){this.style.width=Wdth-LeftExtra; this.style.height=Hght-TopExtra; this.style.paddingLeft=LeftPaddng; this.style.paddingTop=TopPaddng}
        else{this.style.width=Wdth; this.style.height=Hght}
        this.style.overflow='hidden'
        this.LowBack=LowBgColor;
        this.LowFontColor=FontLowColor;
        this.HighBack=(MemVal.indexOf('<img')==-1)?HighBgColor:LowBgColor;
        this.HighFontColor=(MemVal.indexOf('<img')==-1)?FontHighColor:FontLowColor; 
        this.style.color=this.LowFontColor;
        this.style.backgroundColor=this.LowBack;
        if(MenuTextCentered)this.style.textAlign='center';
        if(MemVal.indexOf('<')==-1&&DomYes){t=Location.document.createTextNode(MemVal);this.appendChild(t)}
        else this.innerHTML=MemVal;
        if(MemVal.indexOf('<img')==-1&&eval(WhatMenu+'[2]')){
                S=(CreateRecursLevel==1&&FirstLineHorizontal)?'tridown.gif':'tri.gif';
                W=(CreateRecursLevel==1&&FirstLineHorizontal)?10:5;
                H=(CreateRecursLevel==1&&FirstLineHorizontal)?5:10;
                T=(CreateRecursLevel==1&&FirstLineHorizontal)?Hght-7:Hght/2-5;
                L=(CreateRecursLevel==1&&FirstLineHorizontal)?Wdth-12:Wdth-7;
                if(DomYes){t=Location.document.createElement('img'); this.appendChild(t); t.style.position='absolute'; t.src=S; t.style.width=W; t.style.height=H; t.style.top=T; t.style.left=L}
                else{MemVal+="<div style='position:absolute; top:"+T+"; left:"+L+"; width:"+W+"; height:"+H+";visibility:inherit'><img src='"+S+"'></div>"; this.innerHTML=MemVal}}
        if(ExpYes){this.onmouseover=OpenMenu; this.onmouseout=CloseMenu; this.onclick=GoTo}
        else{this.addEventListener('mouseover',OpenMenu,false); this.addEventListener('mouseout',CloseMenu,false); this.addEventListener('click',GoTo,false)}}

function NavMemberSetUp(MmbrCntnr,PrMmbr,WhatMenu,Wdth,Hght){
        this.value=eval(WhatMenu+'[0]');
        if(LeftPaddng&&this.value.indexOf('<')==-1&&!MenuTextCentered)this.value=' ;'+this.value;
        if(FontBold)this.value=this.value.bold();
        if(FontItalic)this.value=this.value.italics();
        this.Overvalue=this.value;
        this.value=this.value.fontcolor(FontLowColor);
        this.Overvalue=this.Overvalue.fontcolor(FontHighColor);
        this.value=CenterText+"<font face='"+FontFamily+"' point-size='"+FontSize+"' color='"+FontLowColor+"'>"+this.value+TxtClose;
        this.Overvalue=CenterText+"<font face='"+FontFamily+"' point-size='"+FontSize+"' color='"+FontHighColor+"'>"+this.Overvalue+TxtClose;
        this.LowBack=LowBgColor;
        this.HighBack=HighBgColor;
        this.visibility='inherit';
        this.ChildCntnr=null;
        this.PrevMember=PrMmbr;
        this.bgColor=LowBgColor;
        this.resizeTo(Wdth,Hght);
        this.document.write(this.value);
        this.document.close();
        this.CmdLyr=new Layer(Wdth,MmbrCntnr);
        this.CmdLyr.visibility='inherit';
        this.CmdLyr.Level=CreateRecursLevel;
        this.CmdLyr.LinkTxt=eval(WhatMenu+'[1]');
        this.CmdLyr.onmouseover=OpenMenu;
        this.CmdLyr.onmouseout=CloseMenu;
        this.CmdLyr.captureEvents(Event.MOUSEUP);
        this.CmdLyr.onmouseup=GoTo;
        this.CmdLyr.LowLyr=this;
        this.CmdLyr.Container=MmbrCntnr;
        this.CmdLyr.resizeTo(Wdth,Hght);
        if(this.value.indexOf('<img')==-1 &&eval(WhatMenu+'[2]')){
                this.CmdLyr.ImgLyr=new Layer(10,this.CmdLyr);
                this.CmdLyr.ImgLyr.visibility='inherit';
                this.CmdLyr.ImgLyr.top=(CreateRecursLevel==1&&FirstLineHorizontal)?Hght-7:Hght/2-5;
                this.CmdLyr.ImgLyr.left=(CreateRecursLevel==1&&FirstLineHorizontal)?Wdth-12:Wdth-7;
                this.CmdLyr.ImgLyr.width=(CreateRecursLevel==1&&FirstLineHorizontal)?10:5;
                this.CmdLyr.ImgLyr.height=(CreateRecursLevel==1&&FirstLineHorizontal)?5:10;
                ImgStr=(CreateRecursLevel==1&&FirstLineHorizontal)?"<img src='tridown.gif'>":"<img src='tri.gif'>";
                this.CmdLyr.ImgLyr.document.write(ImgStr);
                this.CmdLyr.ImgLyr.document.close()}}

function CreateMenuStructure(MenuName,NumberOf){
        CreateRecursLevel++;
        var i,NoOffSubs,Member;
        var PreviousMember=null;
        var WhichMenu=MenuName+'1';
        var MenuWidth=eval(WhichMenu+'[4]');
        var MenuHeight=eval(WhichMenu+'[3]');
        var Location=(CreateRecursLevel==1)?FirstLocation:SecLocation;
        if(DomYes){
                var MemberContainer=Location.document.createElement("div");
                MemberContainer.style.position='absolute';
                MemberContainer.style.visibility='hidden';
                Location.document.body.appendChild(MemberContainer)}
        else        if(Nav4) var MemberContainer=new Layer(MenuWidth,Location)
                else{        WhichMenu+='c';
                        Location.document.body.insertAdjacentHTML("AfterBegin","<div id='"+WhichMenu+"' style='visibility:hidden; position:absolute;'></div>"); 
                        var MemberContainer=Location.document.all[WhichMenu]}
        MemberContainer.SetUp=ContainerSetUp;
        MemberContainer.SetUp(MenuWidth,MenuHeight,NumberOf);
        if(Exp4){        MemberContainer.InnerString='';
                for(i=1;i<NumberOf+1;i++){
                        WhichMenu=MenuName+eval(i);
                        NoOffSubs=eval(WhichMenu+'[2]');
                        MemberContainer.InnerString+="<div id='"+WhichMenu+"' style='position:absolute;'></div>"}
                MemberContainer.innerHTML=MemberContainer.InnerString}
        for(i=1;i<NumberOf+1;i++){
                WhichMenu=MenuName+eval(i);
                NoOffSubs=eval(WhichMenu+'[2]');
                if(DomYes){
                        Member=Location.document.createElement("div");
                        Member.style.position='absolute';
                        Member.style.visibility='inherit';
                        MemberContainer.appendChild(Member);
                        Member.SetUp=MemberSetUp}
                else        if(Nav4){Member=new Layer(MenuWidth,MemberContainer);
                        Member.SetUp=NavMemberSetUp}
                else{        Member=Location.document.all[WhichMenu];
                        Member.SetUp=MemberSetUp}
                Member.SetUp(MemberContainer,PreviousMember,WhichMenu,MenuWidth,MenuHeight);
                if(NoOffSubs) Member.ChildCntnr=CreateMenuStructure(WhichMenu+'_',NoOffSubs);
                PreviousMember=Member}
        MemberContainer.FirstMember=Member;
        CreateRecursLevel--;
        return(MemberContainer)}

function CreateMenuStructureAgain(MenuName,NumberOf){
        var i,WhichMenu,NoOffSubs;
        var PreviousMember,Member=FirstContainer.FirstMember;
        CreateRecursLevel++;
        for(i=NumberOf;i>0;i--){
                WhichMenu=MenuName+eval(i);
                NoOffSubs=eval(WhichMenu+'[2]');
                PreviousMember=Member;
                if(NoOffSubs)Member.ChildCntnr=CreateMenuStructure(WhichMenu+'_',NoOffSubs);
                Member=Member.PrevMember}
        CreateRecursLevel--}
//-->
</script>
</BODY>

Profile
0
Lv

0개의 댓글

에디터
번호 제목 날짜 조회 수
공지 [웹표준] 코딩 배울 수 있는 사이트 모음(HTML/CSS/JS/IMG/PHP) 2018.01.03 99
공지 [jQuery] jQuery를 배울수 있는 동네들입니다. 2013.08.09 19176
공지 [미분류] 관련 링크 2010.05.23 33743
100 드롭다운 가로형 메뉴 2009.01.20 4772
99 탭메뉴형 자바스크립트 2009.01.20 4973
98 [HTML5] dl과 ul의 상하관계(?)에 대해서 질문드립니다. 1 2009.01.20 5121
97 Dolphin CSS Menu 2009.01.20 3785
96 Cut & Paste CSS Horizontal List Menu 2009.01.20 3859
95 [Script] 슬라이딩 레이어 1 2009.01.20 5815
94 [Script] 스크롤 따라다니는 레이어 2009.01.20 4881
93 [Script] 스크롤 따라다니는 레이어 2 2009.01.20 5746
92 [Script] 간단한 점프메뉴(selecter) 2009.01.20 4842
91 [Script] 화면 왼쪽에 숨겨진 레이어 꺼내기 1 2009.01.20 5608
90 [Script] 메뉴 슬라이딩(가로) 1 2009.01.20 7167
89 [Script] 클릭하면 슬라이드되면서 펼쳐지는 사이드 메뉴 2009.01.20 8242
[Script] 가로 세로가 호환되는 메뉴 2009.01.20 4127
87 [Script] 위의 메뉴에 마우스를 올리면 밑에 메뉴가 나오는 소스 2009.01.20 4734
86 [Script] 롤오버 메뉴에 하위 부메뉴 레이어..(아웃시 하위메뉴사라짐) 2 2009.01.20 6402
85 [Script] Show-Hide Layers (by 태그매니아) 3 2009.01.20 4934
84 [Script] Show-Hide Layers (by 신의키스) 2009.01.19 4644
83 [Script] div 높이 100% 맞추기 2009.01.18 6826
82 [Script] 롤오버 메뉴 만들기 1 2009.01.18 5880
81 주석 표시하기 2009.01.14 3506