08. september 2001 - 14:02Der er
24 kommentarer og 1 løsning
Endnu et billedskift
OK, jeg ved der er mange som har spurgt om dette emne, men jeg har ikke kunnet finde noget svar som macther mine krav. Here goes : Jeg har et frameset en frame øvrest og en nederst. Den øverste er min navigation med billeder som knapper, nederst indholdet. Nu vil jeg have mine knapper til at skifte til nogle andre billeder når musen kører hen over dem OG det billede skal så blive ved at være valgt når jeg klikker på det (og åbner en ny side i nederste frame). Her på siderne kan jeg kun finde hvordan man laver den kendte \"hover\" funktion men ikke hvordan billedet bliver ved med at være der når man har trykket på det (og KUN når man har trykket).
Jo, billedet skal \"reset´es\" når jeg likker på et af de andre billeder. Ellers har jeg jo lige pludselig \"valgt\" 4 emner samtidig. SÅ det skal scriptet også kunne gøre!
Hmm, ja. Men hor er det så jeg sætter hvilket doc som skal åbnes når jeg klikker. Pt. har jeg et script som gør halvdelen af det jeg vil have. Det mangler bare at kunne \"reset´e\" billedet tilbage når jeg klikker på et af de andre. Scriptet ser således ud : <a href=\"reparation.html\" onmouseover=\"document.all[\'picture\'].src=\'Images/reparation_v.gif\'\"> <img border=\"0\" id=\"picture\" src=\"Images/reparation.gif\" width=\"92\" height=\"13\"></a>
Er det så nogle bestemte billeder eller er det alle billederne i din frame (nå, det kan vi jo også styre os uden om at bekymre os om !-)
<script language=\'Javascript> var startimg = new Array(); startimg[0] = new Image();startimg[0].src = \'detFoersteBillede.gif\'; startimg[1] = new Image();startimg[1].src = \'detAndetBillede.gif\'; var slutimg = new Array(); slutimg[0] = new Image();slutimg[0].src = \'detFoersteBilledeEfter.gif\'; slutimg[1] = new Image();slutimg[1].src = \'detAndetBilledeEfter.gif\';
function setImgs(number){ for (i=0;i<document.images.length;i++) if (i=number)document.images[i].src=slutimg[i].src; else document.images[i].src=startimg[i].src; }
Cooool, men jeg er stadig ikke helt med. Nu har jeg sat scriptet ind og tilpasset det. Men hvorhenne aktiverer jeg det? Hvordan skal mit <img> tags se ud der hvor knapperne skal være, og hvad med <a href>??? ;o)
Øhhh, det ser ud til at virke. men kun på en af knapperne. De andre tilter EI fuldkommen så den er låst. Du får lige koden hvis nu det er den som er gal ;o) <script language=\'Javascript\'> var startimg = new Array(); startimg[0] = new Image();startimg[0].src = \'Images/produkter.gif\'; startimg[1] = new Image();startimg[1].src = \'Images/reparation.gif\'; startimg[2] = new Image();startimg[2].src = \'Images/kontakt.gif\'; var slutimg = new Array(); slutimg[0] = new Image();slutimg[0].src = \'Images/produkter_v.gif\'; slutimg[1] = new Image();slutimg[1].src = \'Images/reparation_v.gif\'; slutimg[2] = new Image();slutimg[2].src = \'Images/kontakt_v.gif\';
function setImgs(number){ for (i=0;i<document.images.length;i++) if (i=number)document.images[i].src=slutimg[i].src; else document.images[i].src=startimg[i].src; } </script>
Når jeg kører siden igennem en debugger for jeg fejlen :\" \'document.images[...]\' is null or not an object\" i linie 22 som er linien \"else document.images[i].src=startimg[i].src;\"
Det er den sidste som virker. Jeg har opdaget det med id på den. Og har også sat det på de andre (det med dobblet </a> havde jeg ikke lige set, men det er fjernet nu), men det hjalp ikke. Jeg for stadig fejl i linie 22, selvom alle 3 nu skulle være ens i koden!
Sådan, nu kører det, men.... Når jeg klikker på billedet (linket) forsvinder det \"aktive\" billede og \"standard\" billede kommer frem igen. Det var jo ikke meningen, det valgte billede skulle jo gerne blive ved med at blive vist, når den side er fremme på skærmen!!! øv, jeg troede lige ;o)
Jo, men så skal vi jo aktivere den, som var inkluderet i min første udvidede funktion:
<script language=\'Javascript\'> var startimg = new Array(); startimg[0] = new Image();startimg[0].src = \'Images/produkter.gif\'; startimg[1] = new Image();startimg[1].src = \'Images/reparation.gif\'; startimg[2] = new Image();startimg[2].src = \'Images/kontakt.gif\'; var slutimg = new Array(); slutimg[0] = new Image();slutimg[0].src = \'Images/produkter_v.gif\'; slutimg[1] = new Image();slutimg[1].src = \'Images/reparation_v.gif\'; slutimg[2] = new Image();slutimg[2].src = \'Images/kontakt_v.gif\'; var clicked = new Array(2);for(i=0;i<clicked.length;i++)clicked[i]=false;
function setImgs(number){ for (i=0;i<document.images.length;i++) if (i=number)document.images[i].src=slutimg[i].src; else {document.images[i].src=startimg[i].src;clicked[i]=false;} } </script>
function setImgs(number){ for (i=0;i<document.images.length;i++) if (i=number||clicked[i])document.images[i].src=slutimg[i].src; else {document.images[i].src=startimg[i].src;} }
Ja, jeg måtte jo lige foretage nogle (ret avancerede) gymnastiske øvelser med logikken, men denne her skulle have logikke i orden.
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.