26. april 2005 - 08:27Der er
58 kommentarer og 1 løsning
Hjælp til menu og mouseover
Hej allesammen
Jeg skal bruge et faneblads menu system til en webside jeg er ved at lave, jeg har brugt Jakobas forslag fra dette sprøgsmål: http://www.eksperten.dk/spm/187987 I det javascript jeg brugte fra http://www.eksperten.dk/spm/187987 skifter den til den "nye" billede allerede når musen er over billedet, jeg vil gerne have at det bare skifter når man klikker.. nogen der kan hjælpe? siden jeg er igang med kan ses her: http://www.gorell.dk/donation - den er dog stadig i testface derfor de underlige farver..
Hmm, har både en onmouseover og onclick, problemet er at hvis jeg skifter onmouseover billedet ud, så virker det ikke længere, ved ikke om du har sethvordan javaen er lavet?
Ja det er korrekt. jeg gerne vil have er at når jeg fører musen over menuen (altså et billede) så skifter den IKKE billede på menuknappen, når jeg så klikker på menuknappen så skal den skifte til et andet billede :)
Ok jeg kan se i scriptet at der er den er onout som giver fejl når du fjerner onover Så prøv fjerne både onmouseover og onmouseout på dine billeder så der kun er klikket tilbage
så er jeg ikke helt med på hvad den gør Når jeg går ind på din side og klikker på en fane så bliver den ligsom større...er det ikke det som er meningen?
jo det er det der er meningen:) men den husker billedet fra on funktionen, derfor skal billedet som det er nu skifte ved mouseover.. men problemet er at dem der har lavet skrev det i 2002
du vil helt reelt have en funktion som sætter src på et billede når du klikker på det....når du klikker på et andet så skal det første sættes tilbage og det andet skal vælges..?
Hvis du til at starte med automatisk har valgt den første så dens src er ex "2.jpg" Så kunne bare løbe alle <img> igennem For hvert <img> tjekke om src var "2.jpg" og hvis den var det så sætte den til "1.jpg" og dernæst rette det aktuelle til "2.jpg" ... hvis du kan følge mig?
eneste minus er hvis du har andre billeder så retter den dem også så det bør nok rettes til så det passer med et specielt id selvfølgelig andet end et tal <script type="text/javascript"> function nyOnKlik(id){ for(i=0; i<document.images.length; i++){ document.images["img"+i].src = "1.jpg"; } document.images[id].src = "2.jpg"; } </script>
Ok :o)... Hvis du i din fil "menu.java" sletter alt under linjen -- // mouseover hvor klikket billed beholder on-billedet -- og så i stedet indsætter -- function onKlik(id){ for(i=0; i<5; i++){ document.images["img"+i].src = "1-h.png"; } document.images[id].src = "1-a.png"; } -- På din side retter du så dine linjer med --- <td><a class="tab" id="tab1" href="java script:visPanel(1)" onmouseover="onOver('img0');" onmouseout="onOut('img0');" onclick="onKlik('img0');"><img id="img0" src='1-h.png' width='98' height='36' alt="img0" /></a></td> --- til --- <td><a class="tab" id="tab1" href="java script:visPanel(1)" onclick="onKlik('img0');"><img id="img0" src='1-h.png' width='98' height='36' alt="img0" /></a></td>
Husk evt at tage en sikkerhedkopi at din manu.java :o) Det funktionen gør er at den tager alle dine billeder som hedder "img0" op til "img4" og sætter dem til 1-h.png, derefter sætter den det du klikkede på til 1-a.png Så det du burde opnå er at hver gang du klikker på fane så lukker en tidligere åbnet fane sig og den du klikker på åbner sig :o)
øhh hov :) nu så jeg jo lige noget, sådan som det er nu, er det jo den samme knap der vidst over hele linien, altså jeg kan jo ikke have noget stående i knapperne uden at det går galt :) skulle jo gerne være sådan at knapperne skal virke som navigation og skal jo derfor gerne være billeder :)
Jo -- hvis blot du vil have tekst ind? Så kan du jo benytte <span> tagget til at sætte tekst ind over billedet Med mindre du ønsker at benytte specielle billeder?
En løsning kunne være følgende Hvis du har fem billeder når der ikke er klikket og fem billeder når der er klikket -- function onKlik(id){ var klikketArr = new Array("stor1.png","stor2.png","stor3.png","stor4.png","stor5.png"); var ejklikketArr = new Array("lille1.png","lille2.png","lille3.png","lille4.png","lille5.png") for(i=0; i<5; i++){ document.images["img"+i].src = ejklikketArr[i]; } document.images["img"+id].src = klikketArr[id]; } -- Men så skal funktionskaldet rettes til blot et tal altså: -- <td><a class="tab" id="tab1" href="java script:visPanel(1)" onclick="onKlik('0');"><img id="img0" src='1-h.png' width='98' height='36' alt="img0" /></a></td>
jeg forstår ikke helt dit dansk i sidste indlæg ;o) Men ja tror jeg nok hehe Det første billede skal have id = "img0" og kalde funktinen onKlik('0')...det næste med 1 og så frem deles I arraysne skifter du så stor1.png ud med det billede som skal vises når der klikkes på img0 og lille1.png ud med det billede som skal vises hvis der ikke klikkes på img0... og så fremdeles Burde vist virke
Jeg har kun tjekket i IE for jeg har ikke FF lige her... Men jeg vil mene javascript koden virker i alle browsere (som understøtter den) Godt det virker :o)
hmm altså :) meget mystisk :) for det første så vil den ikke lade IE med sp2 køre scriptet da det er med aktivt indhold, så det skal man først acceptere :S dernæst så virker det fint i opera og ff men ikke i IE. den viser ikke det store billede i IE.
det virker på den første og den eneste forskel jeg kan se er " frem for ' "rigtig" html speciferer at man skal bruge " Så prøv rette så alt kommer med " altså <td><a class="tab" id="tab1" href="java script:visPanel(1)" onclick="onKlik('0');"><img id="img0" src="1-h.png" width="98" height="36" alt="img0" /></a></td>
Det med aktivt indhold..det er vist helt afhængig af dine egne sikkerhedsinstillinger i IE.. hos mig er der ingen ballade.. så prøv evt sætte sikkerheden ned
ok det er spooky.. virker som om IE ønsker at de er "loadet" .. der bliver tomt ja..der står at billedet ikke er tilgængeligt ja Men går man ind på http://gorell.dk/donation/stor4.png og så trykker tilbage så virker nummer fire..og så fremdeles hmmmm
jeg tænker mere på om du burde sætte en span rundt om img.. sådan her <td><a class="tab" id="tab1" href="java script:visPanel(1)" onclick="onKlik('0');"><span style="display:inline"><img id="img0" src="lille1.png" width="98" height="36" alt="img0" /></span><span style="display:none"><img id="img0" src="stor1.png" width="98" height="36" alt="img0" /></span></a></td> -- Så er de der..så skal de bare løbes igennem på en anden måde... jeg tror foresten måske det også kunne løse dit andet problem fra andet spørgsmål med mellemrum
ok har en ide - prøv rette alle til som den her --- <td><a class="tab" id="tab1" href="java script:visPanel(1)" onclick="onKlik('0');"><img style="display:inline" id="img0a" src="lille1.png" width="98" height="36" alt="img0" /><img style="display:none" id="img0b" src="stor1.png" width="98" height="36" alt="img0" /></a></td> -- og funktionen til -- function onKlik(id){ for(i=0; i<5; i++){ document.images["img"+i+"a"].style.display = inline; document.images["img"+i+"b"].style.display = none; } document.images["img"+id+a].style.display = none; document.images["img"+id+b].style.display = inline; }
ok så tager vi den sådan her function onKlik(id){ for(i=0; i<5; i++){ document.getElementById("img"+i+"a").style.display = "inline"; document.getElementById("img"+i+"b").style.display = "none"; } document.getElementById("img"+id+a).style.display = "none"; document.getElementById("img"+id+b).style.display = "inline"; }
ahh idiot henrik...tsk tsk Sorry... der mangler jo " omkring a og b function onKlik(id){ for(i=0; i<5; i++){ document.getElementById("img"+i+"a").style.display = "inline"; document.getElementById("img"+i+"b").style.display = "none"; } document.getElementById("img"+id+"a").style.display = "none"; document.getElementById("img"+id+"b").style.display = "inline"; }
Sådan!! så virker det :) både i IE og FF og Opera :) Hmm du snakkede noget om at jeg kunne omgå det mellemrum mellem menuen og tabllen ved at bruge span?
Men godt det endelig virker... :o).. og godt du var tålmodig..engang imellem driller det jo.. tror jeg fik lagt et svar
Synes godt om
Ny brugerNybegynder
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.