01. juni 2005 - 21:01Der er
8 kommentarer og 1 løsning
Hjælp til billede skift!
Hey eksperter. Jeg har en <select> boks som indholder nogle navne fx "It-nyt" og som så har en value="gfx/itnyt.gif". Jeg vil gerne have sådan at der er et billede under dropdown menuen som viser valuen af den valgte <option> Håber i forstår mit spørgsmål :)
Det er der flere måder at gøre på, men jeg plejer at bruge denne metode: // Array med billed-urls var billeder = ["billed1.png","billed2.png","billed3.png"]; var preloadArr = new Array(); // Preloader for (var i=0;i<billeder.length;i++) { preloadArr[i] = new Image(); preloadArr[i].src = billeder.src; }
Du har altså et array med en masse url's til billeder og så kører for-løkken dem igennem. Når du laver en Image-objekt og tildeler den den rette url (src) så bliver billedet loadet ind i hukommelsen.
Jeg har dog tit spekuleret på om hvorvidt det er nødvendigt, at lave et nyt Image-objekt for hvert billede eller om man bare kunne skrive: var billeder = ["billed1.png","billed2.png","billed3.png"]; var preloadImg; // Preloader for (var i=0;i<billeder.length;i++) { preloadImg = new Image(); preloadImg.src = billeder.src; }
Men det kommer nok også an på hvordan browseren behandler javascript, hukommelsen, cachen og den slags. Jeg vil i hvert fald nok tro du bliver nødt til at bruge den øverste metode - der er jo heller ikke den store forskel.
-- og et gæt på et svar til din forundring kunne være, at hvis ikke du laver et selvstændigt Image-objekt, vil browseren slette den tidligere instans og fjerne alle funkrtioner tilknyttet det, før det er færdigt med at loade ...
-- men med de mest forekommende billeder (menu-tekster, små logoer m.m. !-) betyder det jo alligevel ikke noget, da IE jo alligevel kigger efter på serveren, om der skulle være kommet en ny udgave hver gang, det skal vises !o]
Ellers lyder din forklaring på hvorfor man skal lave et selvstændigt Image-objekt meget logisk. Var nok også mest en lille flyvsk tanke, at browseren beholdt billedet i hukommelsen, også selvom man ændrer på Image-objektets src.
-- og jeg tror faktisk billedet bliver i hukommelsen, selvom man sletter Image-objektet, men det nytter ikke meget, hvis objektet fjernes før billedet fysisk er kommet ind !-)
Kunne du da ikke bruge Ulriks script og forklaringer ?-(
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.