Avatar billede snapstinget Nybegynder
24. maj 2002 - 13:06 Der er 42 kommentarer og
1 løsning

Billed-link, der volder problemer ved mouse-click agtigt noget...

Hælløw dér!

Jeg er ved at fuldende et design til et eksamensprojekt, som skal afleveres på torsdag den 30. maj.

Tjek følgende link:
http://www.design-addict.dk/BatonRouge/diverse/website/
...designet er ikke færdigt endnu, men menu-bar'en øverst er (næsten) klar til brug. Eneste problem med den er, at der skal være en effekt magen til mouseOver-effekten, når brugeren HAR klikket og altså aktiveret et af linksene.


Kode-eksempel:

<script language="JavaScript">
<!--

function newImage(arg) {
    if (document.images) {
        rslt = new Image();
        rslt.src = arg;
        return rslt;
    }
}

function changeImages() {
    if (document.images && (preloadFlag == true)) {
        for (var i=0; i<changeImages.arguments.length; i+=2) {
            document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
        }
    }
}

var preloadFlag = false;
function preloadImages() {
    if (document.images) {
        band_info_over = newImage("images/band-info-over.gif");
        musik_over = newImage("images/musik--over.gif");
        galleri_over = newImage("images/galleri--over.gif");
        gbog_over = newImage("images/gbog-over.gif");
        anmeldelser_over = newImage("images/anmeldelser-over.gif");
        kontakt_over = newImage("images/kontakt-over.gif");
        preloadFlag = true;
    }
}

// -->
</script>


Eksempel på en af "knapperne":

<a href="band-info.html" target="iframe" onFocus="this.blur();"
                onmouseover="changeImages('band_info', 'images/band-info-over.gif'); return true;"
                onmouseout="changeImages('band_info', 'images/band-info.gif'); return true;">
                <img name="band_info" src="images/band-info.gif" width=133 height=47 border=0></a>

Det vil være en meget stor hjælp, hvis en derude vil hjælpe mig med dette inden for en times tid, så derfor ofrer jeg 60 point på et sikkert ellers rimelig let problem...

/Anders.
Avatar billede mikoalngelo Nybegynder
24. maj 2002 - 14:23 #1
Der er ingen parametre i changeImages()-functionen
Avatar billede snapstinget Nybegynder
24. maj 2002 - 14:44 #2
Tak for responsen.

Parametre, siger du? Hvad betyder sådan noget? Hele funktionen og de relaterede linier inde i <a>-tag'et er genereret af Adobe ImageReady...

Jeg har stort set ingen forstand på JavaScript, så jeg forstår ikke helt, hvad du mener...


/Anders.
Avatar billede Slettet bruger
24. maj 2002 - 16:18 #3
mikoalngelo>> Funktionen får fat på parametrene vha. en lidt utraditionel måde. Se de få linjer i funktionen.

Prøv det her:

<a href="band-info.html" target="iframe" onFocus="this.blur();"
                onmouseover="changeImages('band_info', 'images/band-info-over.gif'); return true;"
                onmouseout="changeImages('band_info', 'images/band-info.gif'); return true;"
                onclick="changeImages('band_info', 'images/band-info-click.gif'); setTimeout('changeImages(\'band_info\', \'images/band-info.gif\');',750);">
                <img name="band_info" src="images/band-info.gif" width=133 height=47 border=0></a>

Så skal du så også lige tilføje en linje i din preload-funktion:

function preloadImages() {
    if (document.images) {
        band_info_over = newImage("images/band-info-over.gif");
        musik_over = newImage("images/musik--over.gif");
        galleri_over = newImage("images/galleri--over.gif");
        gbog_over = newImage("images/gbog-over.gif");
        anmeldelser_over = newImage("images/anmeldelser-over.gif");
        kontakt_over = newImage("images/kontakt-over.gif");
        band_info_click = new Image("images/band-info-click.gif");
        preloadFlag = true;
    }
}
Avatar billede Slettet bruger
24. maj 2002 - 16:19 #4
Det skifter billedet tilbage til mouseout-billedet efter 750 millisekunder.
Avatar billede snapstinget Nybegynder
25. maj 2002 - 15:08 #5
Ok - og undskyld den lange responstid fra min side :o)

phoenixv>>
Har nu indsat tilføjelserne til koden både i preload-funktionen og nede på linksene. Har selvfølgelig ændret i filnavnene, så der skulle blive skiftet til de rigtige billeder...

Nu er mit problem så bare, at der lige pludselig hverken er mouseOver- ELLER onClick-effekt...?

Skal jeg også ændre noget i changeImages-funktionen? - Fatter som sagt ikke ret meget om JS.

/Anders. (du skal nok få dine point!) :o)
Avatar billede Slettet bruger
25. maj 2002 - 15:11 #6
Kan du ikke lige smide et link?

P.S. Du skal ikke give mig points, før opgaven er løst! :)
Avatar billede snapstinget Nybegynder
25. maj 2002 - 15:13 #7
Jo, natullervis. Giv mig lige 5 minutter til at uploade til serveren, som jeg tidligere linkede til...

url'en er: http://www.design-addict.dk/BatonRouge/diverse/website/

Ved det er en lidt uigennemskulig adresse, men vi arbejder som sagt på et eksamensprojekt, og her i testfasen lægger jeg mit eget domæne til "rådighed" som legeplads :o)

...lægger lige op...
Avatar billede snapstinget Nybegynder
25. maj 2002 - 15:19 #8
alt ligger klar til dig :o)

PS. Ved indlæsning af index-filen melder IE nu om fejl på linie 53...
Avatar billede dengalepose.dk Nybegynder
25. maj 2002 - 15:27 #9
Hej Snapstinget

Går du ikke online på icq ?

Min telefon virker ikke...

DGP/Thomas :o)
Avatar billede Slettet bruger
25. maj 2002 - 15:33 #10
Du mangler et mellemrum mellem "new" og "Image" i de første linjer af preloadImages-funktionen!
Avatar billede Slettet bruger
25. maj 2002 - 15:34 #11
Der skal fx stå:

band_info_over = new Image("images/band-info-over.gif");
Avatar billede snapstinget Nybegynder
25. maj 2002 - 15:54 #12
oki. prøver det lige :o)
Avatar billede snapstinget Nybegynder
25. maj 2002 - 15:57 #13
..stadig ingen mouseOver- eller onClick-effekt.

Der er iøvrigt noget, jeg lige skal høre dig om: i de linier, hvor du angiver TimeOut på knappen (eller noget), er der indsat "\"'er nogen steder. Hvorfor det?
Avatar billede Slettet bruger
25. maj 2002 - 15:59 #14
\ er indsat, fordi jeg bliver nødt til at escape de apostroffer inden i timeout-sætningen. Ellers vil den melde fejl!
Har du uploadet?
Avatar billede snapstinget Nybegynder
25. maj 2002 - 16:00 #15
2 sek
Avatar billede snapstinget Nybegynder
25. maj 2002 - 16:01 #16
done :o)
Avatar billede Slettet bruger
25. maj 2002 - 16:05 #17
Næ... Hvor er jeg lam! Der skal netop IKKE mellemrum mellem "new" og "Image":

band_info_over = newImage("images/band-info-over.gif");

Og det samme over hele linjen!
Avatar billede snapstinget Nybegynder
25. maj 2002 - 16:07 #18
Okæ ;o)

Prøver lige igen... Er det så DERFOR, der ikke er nogen effekter på knapperne pt.?
Avatar billede Slettet bruger
25. maj 2002 - 16:08 #19
Ja, jeg har prøvet at arbejde lidt med det, og nu kommer der i hvert fald ingen fejlmeddelelser, men jeg har jo ikke dine billedfiler, så jeg kan ikke være sikker på noget!
Avatar billede snapstinget Nybegynder
25. maj 2002 - 16:09 #20
Du er en haj! :o)

Nu mangler jeg så bare, at knapperne vedbliver at være "mørke", når linket er aktivt - altså når den pågældende side ER blevet indlæst...
Avatar billede snapstinget Nybegynder
25. maj 2002 - 16:30 #21
..er det noget, du også kan hjælpe mig med, phoenixv?
Avatar billede snapstinget Nybegynder
25. maj 2002 - 16:42 #22
..phoenixv, du får dine 60 point. helt sikkert, men hvis du oss' kan hjælpe mig med onClick-stadiet får du 30 ekstra og et stort smil herfra :o)
Avatar billede Slettet bruger
25. maj 2002 - 17:25 #23
OK, så er det nemmere end som så (du behøver ikke timeout, som du i øvrigt også havde misforstået):

Sæt denne linje nederst i script-tagget:

aktiv = 0;

Og så skriver du dette ved dine menupunkter:

<a href="band-info.html" target="iframe" onFocus="this.blur();"
                onmouseover="if (aktiv != this) {changeImages('band_info', 'images/band-info-over.gif'); return true;}"
                onmouseout="if (aktiv != this) {changeImages('band_info', 'images/band-info.gif'); return true;}"
                onclick="changeImages('band_info', 'images/band-info-click.gif'); aktiv = this;">
                <img name="band_info" src="images/band-info.gif" width=133 height=47 border=0></a>
Avatar billede Slettet bruger
25. maj 2002 - 17:27 #24
Hvis det ikke virker, så prøv at skifte de tre steder, hvor der står "this", ud med et vilkårligt ord med gåseøjne udenom. Det ord skal så være unikt fra menupunkt til menupunkt.
Avatar billede snapstinget Nybegynder
25. maj 2002 - 17:30 #25
oki, jeg prøver, men jeg skal lige sikre mig, HVOR du mener, jeg skal sætte det ind henne...

Nederst i script-tagget, siger du? Er det cirka her?:

...
        preloadFlag = true;
    }
}

// -->
</script>

-Efter sidste klamme, altså...
Avatar billede Slettet bruger
25. maj 2002 - 17:34 #26
Jeps (rent faktisk er det komplet ligegyldigt, men for at undgå, at linjen i forvirringen havner inden i en funktion, siger vi bare "nederst")! :)
Avatar billede Slettet bruger
25. maj 2002 - 17:34 #27
Men jeg smutter for i dag! So long, suckers! :)
Avatar billede snapstinget Nybegynder
25. maj 2002 - 17:36 #28
STOP! du skal lige ha' 30 ekstra, yes?
Avatar billede snapstinget Nybegynder
25. maj 2002 - 18:03 #29
...phoenixv, det virker alt sammen - MEN for at "neutralisere" de inaktive knapper, så de vender tilbage er jeg nødt til at bevæge musen hen over dem... det vil sige, jo flere links, man klikker på, jo flere knapper bliver mørke - og bliver ved med at være det, indtil mouseOver..?

det skulle jo gerne være sådan, at en før aktiveret knap, band-info fx., vender tilbage til sit mouseOut-stadie, når et andet link, musik fx., aktiveres...

how to do that?
Avatar billede Slettet bruger
26. maj 2002 - 16:53 #30
Selvfølgelig!

Så skal linjen nederst i script-tagget ændres til dette:

aktiv = "";
aktivsrc = "";

Og onclick i menupunkterne:

onclick="changeImages('band_info', 'images/band-info-click.gif'); if (aktiv != '') changeImages(aktiv, aktivsrc); aktiv = 'band_info'; aktivsrc = 'images/band-info.gif';">

Husk at skifte de "band-info" ud med de rigtige navne i de forskellige menupunkter!

Så håber jeg, det virker! :)
Avatar billede snapstinget Nybegynder
26. maj 2002 - 17:17 #31
kaster mig lige over det, og når lååårtet virker, så opretter jeg lige en 30'er som du kan "svare" på, så du får dine lovede ekstra point :o)
Avatar billede snapstinget Nybegynder
26. maj 2002 - 17:20 #32
skal lige sikre mig: der skal "{" og "}" omkring den der sidste changeImages, ikke?
Avatar billede Slettet bruger
26. maj 2002 - 17:22 #33
Jeg behøver ingen ekstra points!

Der skal vist ikke være { og } om! Bare prøv at skrive, som jeg har skrevet, så får vi se...
Avatar billede snapstinget Nybegynder
26. maj 2002 - 17:31 #34
skal de her stadig være i koden, så:
onmouseover="if (aktiv != 'info') {...
onmouseout="if (aktiv != 'info') {

..du skrev dem til mig igår :o)
Avatar billede snapstinget Nybegynder
26. maj 2002 - 17:35 #35
..har ikke fjernet førnævnte if'er endnu, men det virker desværre ikke...

andre bud?
Avatar billede Slettet bruger
26. maj 2002 - 17:36 #36
Du må gerne lige lægge det ud på nettet igen!
Avatar billede Slettet bruger
26. maj 2002 - 17:38 #37
Og ja, if'erne skal være der, men du skal huske, at dér, hvor du har skrevet 'info', skal der i virkeligheden stå navnet på det billede, de er associeret med (hvordan staver man egentlig til assoc...?).
Avatar billede snapstinget Nybegynder
26. maj 2002 - 17:42 #38
gi' mig lige et par minutter. så ligger det der :o)

'info' --> associeret billede? altså fx. 'band-info.gif' eller?
Avatar billede snapstinget Nybegynder
26. maj 2002 - 17:44 #39
stuff online :o)
Avatar billede snapstinget Nybegynder
26. maj 2002 - 17:52 #40
NU VIRKER DET!!! :o) *stort fjoget grin*

..men ikke på band-info linket...
Avatar billede Slettet bruger
26. maj 2002 - 17:55 #41
Jeg kan ikke se url'en.

Med "det associerede billede" mener jeg billedets name, ikke src, altså bare "band_info".
Avatar billede snapstinget Nybegynder
26. maj 2002 - 17:56 #42
Jo, sq! Det virker. Der var bare en lille "_", der skulle ændres til "-".

Heh! Tusind tusind tak, Phoenixv!

Jeg må insistere på, at du får dine 30 ekstra, så jeg opretter lige en til dig!

/Anders.
Avatar billede Slettet bruger
26. maj 2002 - 18:01 #43
Ja, jeg havde også overset den med bindestregen...
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



IT-JOB