Avatar billede mazey Praktikant
08. november 2006 - 18:15 Der er 4 kommentarer og
1 løsning

Få billeder til at skifre ved refresh

Hej eksperter...

Jeg har fundet et script som kan fade mellem de billeder man indsætter og samtidigt skifte links.
Det virker sådan set som det skal, men jeg ville gerne have at når man opdaterede siden så valgte den billederne vilkårligt, sådan så startbillederne ikke altid var de samme.

Koden ser således ud:

<script language="JavaScript">
// Browser Slide-Show script. With image cross fade effect for those browsers
// that support it.
// Script copyright (C) 2004-06 www.cryer.co.uk.
// Script is free to use provided this copyright header is included.
var slideCache = new Array();
function RunSlideShowWithLinks(pictureID,linkID,imageLinks,displaySecs)
{
    var separator = imageLinks.indexOf(";");
    var nextImage = imageLinks.substring(0,separator);
    if (slideCache[nextImage] && slideCache[nextImage].loaded)
    {
        var futureImages= imageLinks.substring(separator +1,imageLinks.length) + ';' + nextImage;
        separator = futureImages.indexOf(";");
        var nextLink = futureImages.substring(0,separator);
        futureImages= futureImages.substring(separator+1,imageLinks.length) + ';' + nextLink;

        if (document.all)
        {
            document.getElementById(pictureID).style.filter=
                "blendTrans(duration=2)";
            document.getElementById(pictureID).filters.blendTrans.Apply();
        }
        document.getElementById(pictureID).src = nextImage;
        document.getElementById(linkID).href = nextLink;
        if (document.all)
        {
            document.getElementById(pictureID).filters.blendTrans.Play();
        }
        setTimeout("RunSlideShowWithLinks('"+pictureID+"','"+linkID+"','"+futureImages+"',"+displaySecs+")",
            displaySecs*2500);
        // Identify the next image to cache.
        separator = futureImages.indexOf(";");
        nextImage = futureImages.substring(0,separator);
    } else {
        setTimeout("RunSlideShowWithLinks('"+pictureID+"','"+linkID+"','"+imageLinks+"',"+displaySecs+")",250);
    }
    // Cache the next image to improve performance.
    if (slideCache[nextImage] == null) {
        slideCache[nextImage] = new Image;
        slideCache[nextImage].loaded = false;
        slideCache[nextImage].onload = function(){this.loaded=true};
        slideCache[nextImage].src = nextImage;
    }       
}
</script>
<table width="490" align="center">
<tr>
<td id="VU"  width="162">
<script language="JavaScript">
RunSlideShowWithLinks("EmilyPicture","EmilyLink",
    "22.jpg;http://ditlink.dk;" +
    "23.jpg;http://ditlink.dk;" +
    "24.jpg;http://ditlink.dk",5);
</script>
<a id="EmilyLink" href="http://ditlink.dk" target="_top">
  <img border="0" src="22.jpg"  id="EmilyPicture" align="center">
</a>
</td><td width="2">
</td>
<td id="VU2"  width="162">
<script language="JavaScript">
RunSlideShowWithLinks("EmilyPicture2","EmilyLink2",
    "11.jpg;http://ditlink.dk;" +
    "12.jpg;http://ditlink.dk;" +
    "13.jpg;http://ditlink.dk;" +
    "14.jpg;http://ditlink.dk",6);
</script>
<a id="EmilyLink2" href="http://ditlink.dk" target="_top">
  <img border="0" src="11.jpg"  id="EmilyPicture2" align="center">
</a>

</td>
<td width="2">
</td>
<td id="VU3"  width="162">
<script language="JavaScript">
RunSlideShowWithLinks("EmilyPicture3","EmilyLink3",
    "1.jpg;http://ditlink.dk;" +
    "2.jpg;http://ditlink.dk;" +
    "3.jpg;http://ditlink.dk",7);
</script>
<a id="EmilyLink3" href="http://ditlink.dk" target="_top">
  <img border="0" src="1.jpg"  id="EmilyPicture3" align="center">
</a>
</td>
</tr>
</table>



///////////
F.eks.

hvis man opdaterede siden blev det til:

<script language="JavaScript">
RunSlideShowWithLinks("EmilyPicture3","EmilyLink3",
    "3.jpg;http://ditlink.dk;" +
    "1.jpg;http://ditlink.dk;" +
    "2.jpg;http://ditlink.dk",7);
</script>


Håber nogen kan hjælpe...
Avatar billede roenving Novice
13. november 2006 - 02:32 #1
Du kan aldrig lave en ting, som bruger et nyt billede ved opdatering (uden også at involvere cookies !-), men du kan sætte en tilfældighed på, så det oftest vil være forskelligt ...

-- men ovenstående script understøtter ikke den mulighed, det er efter min mening simpelthen lavet efter en algoritme, som ikke skulle have lov til at gå løs !o]

I stedet for at tælle fremad i en række, hvilket kan laves ret simpelt, benytter den sig af en ændring af rækkefølgen hver gang, det er simpelthen for dumt ...

-- og jeg gider ikke engang tænke på at lave det om, for det er nok hurtigere at lave det ordentligt !-)

-- og det gad jeg heller ikke lige nu !o]
Avatar billede mazey Praktikant
14. november 2006 - 19:36 #2
Hej roenving...

hehe det forstår jeg da godt.
Da jeg ikke selv kan finde ud af at lave et sådant script er der jo så ikke andet for end at lede og lede, og håbe på at falde over et sådant script.
Men efter lang tids søgen var ovenstående bare det tætteste jeg kunne komme.

Men det er der jo ikke noget at gøre ved. Jeg kan jo kun håbe på at du lige pludselig fik lyst til at hjælpe mig lidt med det. Du har hjulpet mig før husker jeg, og det med stor succes! :D
Avatar billede roenving Novice
15. november 2006 - 13:34 #3
Tjah, jeg ville selv starte fra sådan noget, som er brugt i denne tråd: http://www.eksperten.dk/spm/481785 ...

-- og det ville ikke tage så lang tid at lave det, men den har jeg ikke lige nu, måske senere eller i morgen !-)
Avatar billede mazey Praktikant
20. november 2006 - 20:06 #4
Hej Roenving... Jeg har kigget tråden igennem, men som sagt er jeg ikke så hård til det...

Jeg skal ikke presse, men ville meget gerne have din hjælp!

Jeg vil meget gerne øge pointene hvis det er...
Avatar billede mazey Praktikant
03. juli 2007 - 19:33 #5
Spørgsmålet lukkes... det er ikke længere relevant.
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