Avatar billede bbe1379 Nybegynder
20. november 1999 - 17:51 Der er 2 kommentarer og
1 løsning

Hvem kan genneskue dette script...

Jeg har fundet dette fantastiske script, men kunne godt tænke, at bestemme hvordan det opfører sig, når siden loades.

Det er en menu bygget op af layers, der vises/skjules alt efter hvad der klikkes på, og jeg kunne godt tænke mig at bestemme hvilet lag, der skal vises når siden hentes. Funktionen hedder bare menu() og jeg prøvet at skrive onload="menu(5);"....men det virker ikke.

Her er scriptet - se hvad i kan hitte ud af.


<Style>
<!--

DIV.clTop{position:absolute; width:160; }
DIV.clSub{position:absolute; width:143; color: black; background: none;  padding-top: 0.5em ; padding-bottom: 0.3em }
#divCont{position:relative; left:0; top:0; height:350; width:143; }
#divMain{position:absolute}


-->
</style>


<script language="JavaScript">

n=document.layers
ie=document.all

function hideIt(){
    if(ie || n){
        if(n) document.divLoadCont.visibility="hidden"
        else divLoadCont.style.visibility="hidden"
    }
}



var stayFolded=false

var n = (document.layers) ? 1:0;
var ie = (document.all) ? 1:0;
var browser=((n || ie) && parseInt(navigator.appVersion)>=4)

function makeMenu(obj,nest){
    nest=(!nest) ? '':'document.'+nest+'.'
    this.css=(n) ? eval(nest+'document.'+obj):eval('document.all.'+obj+'.style')
      this.ref=(n) ? eval(nest+'document.'+obj+'.document'):eval('document');
    this.height=n?this.ref.height:eval(obj+'.offsetHeight')
    this.x=(n)? this.css.left:this.css.pixelLeft;this.y=(n)? this.css.top:this.css.pixelTop;
    this.hideIt=b_hideIt;    this.showIt=b_showIt; this.vis=b_vis; this.moveIt=b_moveIt
    return this
}
function b_showIt(){this.css.visibility="visible"}
function b_hideIt(){this.css.visibility="hidden"}
function b_vis(){if(this.css.visibility=="hidden" || this.css.visibility=="hide") return true;}
function b_moveIt(x,y){this.x=x; this.y=y; this.css.left=this.x; this.css.top=this.y}

function init(){
    oTop=new Array()
    oTop[0]=new makeMenu('divTop1','divCont')
    oTop[1]=new makeMenu('divTop2','divCont')
    oTop[2]=new makeMenu('divTop3','divCont')
    oTop[3]=new makeMenu('divTop4','divCont')


    oSub=new Array()
    oSub[0]=new makeMenu('divSub1','divCont.document.divTop1')
    oSub[1]=new makeMenu('divSub2','divCont.document.divTop2')
    oSub[2]=new makeMenu('divSub3','divCont.document.divTop3')
    oSub[3]=new makeMenu('divSub4','divCont.document.divTop4')


    for(i=0;i<oSub.length;i++){ oSub[i].hideIt() }
    for(i=1;i<oTop.length;i++){ oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height) }
}

function menu(num){
    if(browser){
        if(!stayFolded){
            for(i=0;i<oSub.length;i++){
                if(i!=num) oSub[i].hideIt()
            }
            for(i=1;i<oTop.length;i++){
                oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height)
            }
        }
        oSub[num].vis()?oSub[num].showIt():oSub[num].hideIt()
        for(i=1;i<oTop.length;i++){
            if(!oSub[i-1].vis()) oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height+oSub[i-1].height)
            else oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height)
        }
    }
}


onload=init;


</SCRIPT>




    <div id="divCont">


                    <div id="divTop1" class="clTop"><br><a href="#" onclick="menu(0);" class="clMain" >Test</a><br>
                      <div id="divSub1" class="clSub">


1


                      </div>
                    </div>




                <div id="divTop2" class="clTop"><br><a href="#" onclick="menu(1);" class="clMain" >Test</a><br>
                    <div id="divSub2" class="clSub">

2

                      </div>
                    </div>



                <div id="divTop3" class="clTop"><br><a href="#" onclick="menu(2);" class="clMain" >Test</a><br>
                    <div id="divSub3" class="clSub">

3
                    </div>
                </div>



                <div id="divTop4" class="clTop"><br><a href="#" onclick="menu(3);" class="clMain">Test</a><br>
                    <div id="divSub4" class="clSub">

4

                    </div>
                </div>



    </div>
Avatar billede bbe1379 Nybegynder
20. november 1999 - 18:02 #1
...jeg skrev menu(5) fordi jeg bruger flere punkter end jeg viser her......det er ikke fordi objektet ikke eksisterer, at det ikke virker...
Avatar billede skjoldby Nybegynder
21. november 1999 - 13:26 #2
Det er da nemt nok i funktionen init laver du bare et kald til f.eks. menu(3) i slutningen:

function init(){
    oTop=new Array()
    oTop[0]=new makeMenu('divTop1','divCont')
    oTop[1]=new makeMenu('divTop2','divCont')
    oTop[2]=new makeMenu('divTop3','divCont')
    oTop[3]=new makeMenu('divTop4','divCont')


    oSub=new Array()
    oSub[0]=new makeMenu('divSub1','divCont.document.divTop1')
    oSub[1]=new makeMenu('divSub2','divCont.document.divTop2')
    oSub[2]=new makeMenu('divSub3','divCont.document.divTop3')
    oSub[3]=new makeMenu('divSub4','divCont.document.divTop4')


    for(i=0;i<oSub.length;i++){ oSub[i].hideIt() }
    for(i=1;i<oTop.length;i++){ oTop[i].moveIt(0,oTop[i-1].y+oTop[i-1].height) }

menu(3)
}
Avatar billede bbe1379 Nybegynder
21. november 1999 - 14:10 #3
....OK, nu er jeg flov.

....men jeg undrer mig også over hvorfor andre ikke har set det.

Du får hermed point......

Pinligt, pinligt!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester