Avatar billede starter Praktikant
13. december 2003 - 14:03 Der er 8 kommentarer og
1 løsning

Slideshow som kigger i mappe

Hej alle

Jeg vil gerne lave et billedarkiv, hvor brugerne selv skal kunne bladre frem og tilbage. Det i sig selv er ikke noget problem, men jeg vil gerne være fri for at skulle taste alle filnavnene ind i koden, derfor søger jeg et script som selv kan kigge i en mappe og vælge den næste fil. Endvidere vil jeg gerne have mulighed for at skrive en billedtekst (evt. under billedet) samt have en tæller "nr. 1 af 203". Kan det overhovedet lade sig gøre med alm. html?

Jeg skal lige sige, at jeg ikke er nogen ørn til programering, så jeg har brug for et detaljeret løsningsforslag :-)
Avatar billede roenving Novice
13. december 2003 - 14:50 #1
Så skal du over i noget serverside programmering, måske kombineret med lidt javascript til at bladre med ...

Alle oplysningerne fra filerne kan kun ses på serveren, mens javascript er nødvendigt, når der skal ske noget på klienten, som ikke involverer serveren ...

-- Samtidig er javascriptet udelukket fra at gøre andet på serveren end at spørge om en ny side ...

To typiske indgangsvinkler:

1. At du lader serveren præsentere een mappe ad gangen, og genererer de nødvendige navigationsmuligheder (som kan være forskellige fra mappe til mappe !-), og så har lidt javascript til at udføre navigationen.

2. At du genererer et komplet billede af mappestruktur med et serverside script, og overfører dette billede til en javascript database, som du så kan udbygge til selv at navigere rundt.
Avatar billede starter Praktikant
13. december 2003 - 14:55 #2
Kan man ikke omskrive nedenstående script, så den lægger én til hver gang. Billederne er nummereret efter hinanden, så jeg forestiller mig noget med +1... Eller hva'?

</script> <script language="JavaScript">


g_fPlayMode = 0;
g_iimg = 0;
g_imax = 0;
g_ImageTable = new Array();

function ChangeImage(fFwd)
{
if (fFwd)
{
if (++g_iimg==g_imax)
g_iimg=0;
}
else
{
if (g_iimg==0)
g_iimg=g_imax;
g_iimg--;
}
Update();
}
function Update(){
document.all._Ath_Slide.src = g_ImageTable[g_iimg][0];
document.all._Ath_FileName.innerHTML = g_ImageTable[g_iimg][1];
document.all._Ath_Img_X.innerHTML = g_iimg + 1;
document.all._Ath_Img_N.innerHTML = g_imax;
}


function Play()
{
g_fPlayMode = !g_fPlayMode;
if (g_fPlayMode)
{
btnPrev.disabled = btnNext.disabled = true;
Next();
}
else
{
btnPrev.disabled = btnNext.disabled = false;

}
}
function OnImgLoad()
{
if (g_fPlayMode)
window.setTimeout("Tick()", g_dwTimeOutSec*1000);
}
function slidenow(){

}
function Tick()
{
if (g_fPlayMode)
Next();
}
function Prev()
{
ChangeImage(false);
}
function Next()
{
ChangeImage(true);
}
function main()
{

Update();
}

g_ImageTable[g_imax++] = new Array ("foto1");
g_ImageTable[g_imax++] = new Array ("foto2");
g_dwTimeOutSec=2

</script>
Avatar billede roenving Novice
13. december 2003 - 15:38 #3
Den er zq svær at overskue, den kode ...

-- men hvad er det du vil tælle op ?-)

-- og kan du ikke vise hvordan den virker lige nu, å jeg kan forstå det ?o]
Avatar billede starter Praktikant
13. december 2003 - 15:48 #4
Jo da. Du kan se den her: http://www.arbjerg.net/
Avatar billede roenving Novice
13. december 2003 - 16:48 #5
Du kan sagtens lave en lille løkke, som fylder din image-table op, f.eks.

g_ImageTable = new Array();
for(i=0;antalBilleder>i;i++)
  g_ImageTable[g_ImageTable.length] = "foto"+i+".gif";
}
Avatar billede starter Praktikant
15. december 2003 - 17:24 #6
Undskyld, at jeg ikke har svaret - skulle lige have overstået en julefrokost med tilhørende tømmermænd........ ;-)

Jeg kan ikke få din lille løkke til at virke - den laver script-fejl, hvad mon der er galt?
Avatar billede roenving Novice
15. december 2003 - 17:30 #7
Findes der en variabel, som hedder antalBilleder, eller har du skrevet et tal ind i stedet ...

-- og ovenstående er baseret på javascripts syntaktiske udgangspunkt, nemlig 0-baseret, så billederne skal hedde:

foto0.gif
foto1.gif

-- osv.
Avatar billede starter Praktikant
15. december 2003 - 17:34 #8
Nej antallet defineres ud fra antallet af linier i:
g_ImageTable[g_imax++] = new Array ("foto1");
g_ImageTable[g_imax++] = new Array ("foto2");

Billederne hedder default navnene som eksempelvis IM000379.JPG o.s.v.
Avatar billede starter Praktikant
11. januar 2004 - 14:05 #9
Lukker
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