webForumDet fria alternativet

Img swap fungerar inte

7 svar · 217 visningar · startad av frankof

frankofMedlem sedan jan. 20016 874 inlägg
#1

Får inte bildväxlingen att fungera på denna sidan:
http://home.swipnet.se/frankof/lekstuga/test/index.html
Någon som har en ide om vad jag gör fel.
Det är transparenta bilder(delvis), men det skall väl inte ha någon betydelse?
Sidan validerar mot w3c och jag får inga meddelanden om scriptfel, så det är väl knappast en "typo".

p.s. det är ett av Jojoxxs script ;)

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Du har gett alla bilderna samma namn (name) :)

frankofMedlem sedan jan. 20016 874 inlägg
#3

Jo, det vet jag, men skall det vara nödvändigt att ge alla länkar en egen if sats?
Det är ju samma bilder hela tiden, bara adressen som ändras hela tiden(och texten i det underliggande lagret förståss).

R: lagt till if-satser och konstigt nog fungerar det ;)
Tycker bara det blir lite väl mycket kod för den lilla effekten.

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Du kan göra så här;

if (document.images) {
	button_on=new Image;
	button_on.src="button.gif";
	button_off=new Image;
	button_off.src="bttn.gif";
}
function rollIn(imgName){
if (document.images) {
document[imgName].src=button_on.src;
}
}
function rollOut(imgName){
if (document.images) {
document[imgName].src=button_off.src
}
}

Men du måste fortfarande ha ett unikt namn på varje bild så att du har något att refferera till.

frankofMedlem sedan jan. 20016 874 inlägg
#5

Så då måste jag ha 20 bilder med unika namn i stället?(till tio länkar)
Då är det nog bättre med lite if-satser :)

JojoxxMedlem sedan juni 20004 308 inlägg
#6

Umm.... Du måste inte ha 20 "fysiska" bilder (filer). Det räcker med 2. Du behöver heller inte ha mer script än det senaste exemplet, inte ens det om du hoppas över "preload", alltså bild-definieringen i början av scriptet. Men däremot måste du ha <img>-taggar med unika namn för att du skall hänvisa till just den bilden. (index-nummer blir lätt fel när du lägger till nya bilder till dokumentet). Men tycker du att det är jobbigt att skriva 5 <img>-taggar kan du ju scripta det ;)

Annars kan du göra simplast möjliga bildbyte direkt från <img>-elementet, för de webbläsare som stödjer onMouseover/out-event på bilder;

<img src="a.gif" onMouseover="this.src='b.gif';" onMouseout="this.src='a.gif';">

frankofMedlem sedan jan. 20016 874 inlägg
#7

Jo, jag var först inne på det(rätt i länken), men eftersom jag drabbades av hjärnstopp just medan jag lekte med sidan kom jag inte på hur :r

Men tycker du att det är jobbigt att skriva 5 <img>-taggar kan du ju scripta det

Tror du vekligen det ;) (kolla källan nu :e )
Tack för hjälpen

JojoxxMedlem sedan juni 20004 308 inlägg
#8

Du kan ju faktiskt köra varianten med byte direkt i eventet på <img>-taggen och kombinera det med ett script som förladdar "off"-bilden. (on är ju helt onödligt eftersom den laddas från html-koden);

if (document.images) {
	off=new Image;
	off.src="bttn.gif";
}
124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)