Avatar billede px6 Nybegynder
16. september 2003 - 20:56 Der er 9 kommentarer

realtiv position i forhold til menu.

Kunne ikke finde noget jeg kunne bruge ved at kigge det igennem.

kode->

<script language="javascript" src="ypSlideOutMenusC.js"></script>
<script language="javascript">

    var menus = [
        new ypSlideOutMenu("menu1", "down", 115, 102, 86, 59),
        new ypSlideOutMenu("menu2", "down", 260, 102, 86, 59),
        new ypSlideOutMenu("menu3", "down", 340, 102, 86, 140),
        new ypSlideOutMenu("menu4", "down", 425, 102, 86, 120),
        new ypSlideOutMenu("menu5", "down", 515, 102, 86, 120)
    ]

    for (var i = 0; i < menus.length; i++) {
        menus[i].onactivate = new Function("document.getElementById('act" + i + "').className='active';");
        menus[i].ondeactivate = new Function("document.getElementById('act" + i + "').className='';");
    }
</script>

Som I kan se, forholder menuen sig til vinduet.
Jeg tror at løsningen er at skrive en lille variabel, der fx. forholder sig til et billede, og derefter skrive:

new ypSlideOutMenu("menu1", "down", var+115, 102, 86, 59)

som i kan slutte, er mine javaskills = 0, udover copypaste. Alt hjælp er meget påskønnet, hvis I kunne kommentere jeres kode, ville det være super.
Avatar billede px6 Nybegynder
16. september 2003 - 21:07 #1
..mere

Menuen aktiveres af en textlinje fx:

<td width="81" class="OStext10"><div id="menubar" align="center" class="OStext10"><a id="act0" href="forside.html" target="if" onmouseover="ypSlideOutMenu.showMenu('menu1')" onmouseout="ypSlideOutMenu.hideMenu('menu1')" title="Forsiden">Forside</a></DIV></td>

kan man omskrive koden, så den forholder sig til denne tekst x værdi ?
Avatar billede roenving Novice
16. september 2003 - 21:36 #2
<script language="javascript">
var l = new Array();
var t = new Array();

    for (var i = 0; i < menus.length; i++) {
        menus[i].onactivate = new Function("document.getElementById('act" + i + "').className='active';");
        menus[i].ondeactivate = new Function("document.getElementById('act" + i + "').className='';");
        elm = document.getElementById('act' + i);
        for(var zx=zy=0;elm!=null;zx+=elm.offsetLeft,zy+=elm.offsetTop,elm=elm.offsetParent);
        l[i] = zx + 15;
        t[i] = zy + 15;
    }


    var menus = [
        new ypSlideOutMenu("menu1", "down", l[0], t[0], 86, 59),
        new ypSlideOutMenu("menu2", "down", l[1], t[1], 86, 59),
        new ypSlideOutMenu("menu3", "down", l[2], t[2], 86, 140),
        new ypSlideOutMenu("menu4", "down", l[3], t[3], 86, 120),
        new ypSlideOutMenu("menu5", "down", l[4], t[4], 86, 120)
    ]

</script>

-- så må scriptet først køres efter </body>
-- eller det kan laves som funktion, som kaldes onload !-)
Avatar billede roenving Novice
16. september 2003 - 21:38 #3
Ups, grundideen var god nok, men den holder ikke vand !-):

<script language="javascript">
var l = new Array();
var t = new Array();

    for (var i = 0; i < 5; i++) {//antallet af menuer = 5
        elm = document.getElementById('act' + i);
        for(var zx=zy=0;elm!=null;zx+=elm.offsetLeft,zy+=elm.offsetTop,elm=elm.offsetParent);
        l[i] = zx + 15;
        t[i] = zy + 15;
    }


    var menus = [
        new ypSlideOutMenu("menu1", "down", l[0], t[0], 86, 59),
        new ypSlideOutMenu("menu2", "down", l[1], t[1], 86, 59),
        new ypSlideOutMenu("menu3", "down", l[2], t[2], 86, 140),
        new ypSlideOutMenu("menu4", "down", l[3], t[3], 86, 120),
        new ypSlideOutMenu("menu5", "down", l[4], t[4], 86, 120)
    ]

    for (var i = 0; i < menus.length; i++) {
        menus[i].onactivate = new Function("document.getElementById('act" + i + "').className='active';");
        menus[i].ondeactivate = new Function("document.getElementById('act" + i + "').className='';");
    }

</script>
Avatar billede px6 Nybegynder
17. september 2003 - 13:46 #4
tak for svar roenving, men den slideout'serne orienterer sig stadig væk i forhold til venstre side.

Menuen er i en table der er center aligned. Ikke fordi jeg forstår meget af din kode, men kan man ikke tage elementById på fx. Forside teksten, eller tablen menuen sidder i eller noget ?

Du kan også selv tage et kig på http://prokop.dk/osg
Avatar billede px6 Nybegynder
17. september 2003 - 13:54 #5
...og mere :) ..

Jeg prøver at lære hvad du har kodet, korrekt mig hvis forkert.

Du sætter zx og zy values til o, hvorefter du plusser act nummeret til med 15 på begge akser.
Avatar billede px6 Nybegynder
17. september 2003 - 14:13 #6
Ok .. undskyld forvirringen.

Her er humlen: Jeg kan se at det virker, jeg kan fx. referere til et table id, men her er så problemet. Scriptet fanger fx. X værdien af reference tablen, men ved resizing af vinduet, opdaterer den ikke til den nye værdi.

Kan I hjælpe mig med at fixe scriptet, så at værdien kan opdateres ?
Avatar billede px6 Nybegynder
25. september 2003 - 19:16 #7
okay, jeg lukker spørgsmålet .. hit med et svar roeving.
Avatar billede px6 Nybegynder
05. oktober 2003 - 15:04 #8
okay, nu lukker jeg spørgsmålet, hit md et svar anyone
Avatar billede roenving Novice
18. oktober 2003 - 14:28 #9
-- desværre tror jeg ikke man kan sætte noget ind onResize, når der oprettes slide-elementer på den måde ...

-- men ellers velbekomme '-)
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