Avatar billede h.mogensen Nybegynder
11. august 2006 - 01:44 Der er 6 kommentarer og
1 løsning

Slideshow med forsinket billedtekst

Hej

Billedteksten til et slideshow skal forsinkes, det må kunne klares med setInterval, jeg kan dog ikke finde ud af hvordan.

For at lære navne på mange personer vil jeg vise deres foto og efter en pause det tilhørende navn.
Efter visning af navn og billede skal den næste person komme.

Jeg er kommet frem til dette og mangler nu "blot" forsinkelsen:

<script>
var antal=<%=intFoto%>;
var Navn = new Array (<%=strNavn%>);
var Foto = new Array(<%=strFoto%>);
var nr =0;
var vent= 2000;

function skift()
{
if (nr == antal) {nr =0};
document.FotoContainer.src=Foto[nr];
//forsinkelse
document.getElementById("NavnContainer").value = Navn[nr];;
nr++;
setTimeout('skift()',vent);
}
</script>
Avatar billede thesurfer Nybegynder
11. august 2006 - 10:15 #1
Dvs, billedet kommer først, og efter 2 sekunder skal navnet vises?
Avatar billede thesurfer Nybegynder
11. august 2006 - 10:16 #2
Billedet skifter hvert 2. sekund, og der skal yderligere være en forsinkelse på visning af navnet?
Avatar billede h.mogensen Nybegynder
11. august 2006 - 11:44 #3
Foto af p. hansen vises i 5 sekunder uden navn, derefter vises foto og navn i 1 sekund.
Skærmen ryddes og J. Hansen dukker op uden navn i 5 sekunder,derefter vises foto o.s.v

henrik
Avatar billede thesurfer Nybegynder
11. august 2006 - 12:24 #4
Eksempel:

<!-- Husk at indsætte din doctype her -->
<html>
<title>slide</title>
<head>
<script type="text/JavaScript" language="JavaScript">
Folder = "img/";
Antal = 2; // antallet af billede minus 1, da array starter ved 0
Navn = new Array("Hans", "Ole", "Per"); // fiktive data
Foto = new Array("uA.gif","uB.gif","uC.gif"); // fiktive data
VentFoto = 5000;
VentNavn = 3000; // prøv dig frem med denne værdi
Nr = 0;

function skiftbillede()
{
    if (Nr == Antal) Nr = 0;
    skiftnavn('nulstil'); // nustil navn
    document.getElementById("billede").src = Folder + Foto[Nr]; // vis billede
    setTimeout("skiftnavn('')",VentNavn); // vis navn
    Nr++;
    setTimeout("skiftbillede()", VentFoto); // funktionen kalder sig selv efter VentFoto-værdien
}

function skiftnavn(nulstil)
{
    NavnetDerSkalVises = Navn[Nr]; // navnet sættes i variablen NavnetDerSkalVises
    if (nulstil != '') NavnetDerSkalVises = ''; // hvis der står noget i "nulstil", overskrives navnet
    document.getElementById('navn').innerHTML = NavnetDerSkalVises; // vis det der står i variablen NavnetDerSkalVises
}
</script>
</head>
<body onload="skiftbillede()"><!-- start slide ved onload -->
<center>
<img src="" id="billede"><!-- billede-holder hvor billedet skal vises -->
<br>
<div id="navn"><!-- her vises navnet --></div>
</body>
</html>
Avatar billede thesurfer Nybegynder
11. august 2006 - 12:25 #5
PS: Jeg har lavet stort forbogstav på samtlige variabler, pånær "nulstil" som sendes med.
Avatar billede h.mogensen Nybegynder
11. august 2006 - 23:48 #6
JA det virker og tak for det

Det er fint at få løst problemet, men endnu bedre hvis man bliver klogere ved samme lejlighed.

Jeg har arbejdet lidt med scrioptet og fundet ud af at mit problem var at jeg brugte setTimeout nestet dette gav en error: Object ekspected

I det første eksempel her under er funktionerne flyttet ud så de kommer i serie (som du viste), det virker fint.
I det næste er funktionerne nested (som jeg havde dem oprindeligt), det giver fejl.

Er der en forståelig forklaring på dette??


Denne virker:

function vistxt()
{
document.getElementById("NavnContainer").value = elev[nr];;
}

function skift()
{
if (nr == antal) {nr =0};
document.getElementById("NavnContainer").value = '';
document.roterimg.src=billede[nr];
nr++;
setTimeout('skift()',2000);
setTimeout('vistxt()',1000);
}


Men denne virker ikke:

function skift()
{
function vistxt()
{
document.getElementById("NavnContainer").value = elev[nr];;
}

if (nr == antal) {nr =0};
document.getElementById("NavnContainer").value = '';
document.roterimg.src=billede[nr];
nr++;
setTimeout('skift()',2000);
setTimeout('vistxt()',1000);
}




Takker
Henrik
Avatar billede thesurfer Nybegynder
12. august 2006 - 00:36 #7
Hmm.. Så vidt jeg ved, kan du ikke neste funktionerne..
Så det er nok derfor du får en fejl.
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