25. oktober 2004 - 01:18Der er
14 kommentarer og 1 løsning
udskiftning af billeder
Hej eksperter,
jeg har brug for lidt hjælp/inspiration til noget kode. Jeg skal lave en hjemmeside der skal kunne vise 16 billeder á ca. 400*400px hver (et billede af gangen). Jeg vil gerne have at man til at begynde med ser et billede (400*400px) bestående af 16 små billeder (100*100px), hver af dem er et udsnit af de 16 store billeder. Når man trykker på et af de små billeder vises "resten" af det store billede, det er en del af. Det skal ikke bare skifte til det store billede, men de resterende 15 små billeder skal med forskellig hastighed (indenfor fx 1 sekund) skifte (forsvinde) så man ser det store billede; som det lille billede man trykker på repræsenterer. Jeg forestiller mig noget med: onClick på et af de 16 små billeder - en funktion der kan skifte de resterende 15 små billeder til 15 nye små billeder der passer med det der er blevet trykket på, så de tilsammen bliver til et stort billede - men med forskellig hastighed (noget Math.random?)
Jeg håber det er til at forstå + at nogen kan hjælpe På forhånd tak - Michael
Det'r zq da meget simpelt, du skal bare ... hrm ...
De 16 16.-dele er 16 faste stumper, som vises fra start, og hvis man klikker på en af dem, vil de øvrige 15 dele efterhånden forsvinde, så hovedbilledet nr. x vises ?-)
Umiddelbart ville jeg tænke i, at du havde et stort billede bagved, som ved klik ændrede sig til det, som skulle vises, og så ville en ad gangen af de andre i forgrunden blive usynlige ...
Ja det virker som måden, men jeg behøver også nok lidt hjælp til selve koden. Er det noget Style Sheets, når billedet (det store svarende til den 1/16 del man klikker på) skal placere sig bagved - altså i lag? - Hvordan? Er det bare en JavaScript funktion der hvergang "siger": ok du har trykket på denne 1/16 del, så nu placeres først det tilsvarende store billede (hvilket onClick eventen fortæller funktionen) og derefter forsvinder de resterende 15 stumper i forskellig rækkefølge? - Hvordan?
-- og en javascript-kode (jeg plejer at sætte det i headeren, for så kan det nemt klippes over i en ekstern fil, når man er færdig med at teste !-)
<script type="text/javascript"> function applyOnclick(){ var img = document.images; for(i=0;img.length>i;i++){ if(img[i].className=='lilbill'){ img[i].onclick = function(){showBig(this);} } } } var raekkefolge,num,intId,ny = true; function showBig(elm){ if(ny)ny = !ny; else return; if(new var id=elm.name.replace(/^.*?(\d+)$/,"$1"),tmp,n; num = 0; raekkefolge = new Array(); for(i=0;16>i;i++)raekkefolge[i] = i+1; for(i=0;16>i;i++){ n = Math.floor(Math.random()*raekkefolge.length); tmp = raekkefolge[i]; raekkefolge[i] = raekkefolge[n]; raekkefolge[n] = tmp; } document.images['stortbillede'].src = "billede" + id + ".gif"; intId = setInterval('hideSmall()',200); } function hideSmall(){ document.getElementById('lillebillede'+raekkefolge[num++]).style.display='none'; if(num==16){clearInterval(intId);ny = true;} } window.onload = applyOnclick; </script>
-- I eksemplet hedder de små billeder så bill1 - bill16 (.gif !-) og de tilsvarende store hedder billede1 - billede16 (også .gif !-)
-- og det er skrevet direkte ind her, da jeg alligevel ikke havde billed-materiale at teste med, så sandsynligvis er der en tavetosse eller to, men hvis du har nogle billeder, som kan bruges kan du jo prøve at lægge et link, hvis der er fejl !-)
Hej roenving, jeg har rodet med din kode og det virker næsten efter hensigten, der er dog nogle småting jeg ikke kan få til at virke. Først placeringen af de 16 små billeder og det store der jo skal ligge "nedenunder" dem. Jeg har ikke indsat de rigtige billeder da jeg vil prøve at få det til at virke først. Hvis jeg forstår det rigtigt har du defineret placeringen af div. billeder i CSS delen, men der er som om det store billede ligger efter de små billeder og ikke "under"
...forsat kan det passe at de små billeder som default har en ramme omkring sig, hvis ja hvor fjerner jeg den.
Når jeg klikker på et af de små billeder så forsvinder de ganske rigtigt, det virker meget cool, men jeg synes ikke de forsvinder i en tilfældig rækkefølge, deforsvinder hele tiden nederst fra højre mod venstre og op efter.
Håber du gider tage dig tid til at hjælpe med at få det til at fungere. venligst Michael
<img name="stortbillede" id="stortbillede" src="default.gif">//er dette en container hvor det store billede (svarende til det lille man klikker på) bliver placeret?
hvad er hvad i det efterfølgende? <img name="lillebillede1"//besked til funktionen om hvilket billede der er blevet klikket på. id="lillebillede1"//besked om hvilket stort billede der skal placeres under de 16 små før de forsvinder. src="bill1.gif//navnet på det faktiske lille billede man klikker på" class="lilbill"//reference til styls sheet>
<img name="lillebillede1"//gammeldags reference til elementer på en webside id="lillebillede1"//nutidig reference til elementer på en webside src="bill1.gif//navnet på det faktiske lille billede man klikker på" class="lilbill"//reference til stylesheet>
Nu ser det helt rigtigt ud, jeg takker mange gange - hvad med et svar så du kan få dine point.
Må jeg vende tilbage med spørgsmål når jeg har nærlæst koden, hvis der er noget jeg ikke forstår?
Har du nogen ide om hvilke browsere der forstår koden, jeg mener nok det modsatte; er der nogle browsere der ikke vil kunne vise ovenstående kode som en webside?
Hvis du husker at placere style-tagget i head-sektionen, og div'erne i body-delen af en standard html-kode skulle _alle_ nutidige pc-, *nix og mac-baserede browsere kunne se den !-)
Husk at en minimal html-fil bør se sådan ud:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Titlen i titelbaren</title> <!-- Her _skal_ evt. meta-, link- og style-tags placeres ... script-tags bør også placeres her for overskuelighedens skyld !-) --> </head> <body>
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.