Avatar billede zac Nybegynder
14. januar 2006 - 20:53 Der er 4 kommentarer og
1 løsning

Slideshow: Fra faste filnavne 1.jpg-- til filer fra bestemt dir?

Har et slideshow på en webside, billeder, der skifter med et lille tidsinterval.
Det fungerer med et javascript i head, i body er er onload='runSlideShow();', og i den tabel celle, hvor billederne skal komme er der blot <img src='pics/1.jpg' name='SlideShow'>.

Problemet er så, at javesciptet henter billederne ind i et array med bestemte navne.
Nu vil jeg gerne kunne bruge billeder, der ikke på forhånd skal have navnet 1.jpg, 2.jpg osv., jf. nedenfor.

Er forslag til en løsning? Den skal helst ikke gå på, at billederne ved upload skal have nyt navn og gemmes som 1.jpg osv.
Kan viste array inden for javascriptet ændres, så det bliver noget i retning af Pic[i] = 'pics/[[navnet på filen for første id i tabellen, osv]]'?
Eller skal det fx gøres med php før array'et i js tager fat? Og i så fald hvordan?

Har været på nettet incl. eksperten.dk og set på en del af de mange slideshows, der er, men mange af dem bruger faste filnavne som 1, 2, 3... (fx http://www.peters1.dk/webtools/javascript/slideshow.php) - eller er for indviklede iøvrigt!

Javascriptet er dette (kan ikke huske, hvor det stammer fra, men det er meget enkelt, og virker fint):

<!-- Begin
// Set slideShowSpeed (milliseconds)
var slideShowSpeed = 3500;
// Duration of crossfade (seconds)
var crossFadeDuration = 3;
// Specify the image files
var Pic = new Array();
// to add more images, just continue
// the pattern, adding to the array below

Pic[0] = 'pics/1.jpg'
Pic[1] = 'pics/2.jpg'
Pic[2] = 'pics/3.jpg'
Pic[3] = 'pics/4.jpg'
Pic[4] = 'pics/5.jpg'
Pic[5] = 'pics/6.jpg'
Pic[6] = 'pics/7.jpg'
Pic[7] = 'pics/8.jpg'
Pic[8] = 'pics/9.jpg'
Pic[9] = 'pics/10.jpg'
Pic[10] = 'pics/11.jpg'
Pic[11] = 'pics/12.jpg'
Pic[12] = 'pics/13.jpg'
Pic[13] = 'pics/14.jpg'
Pic[14] = 'pics/15.jpg'
Pic[15] = 'pics/16.jpg'

// do not edit anything below this line
var t;
var j = 0;
var p = Pic.length;
var preLoad = new Array();
for (i = 0; i < p; i++) {
preLoad[i] = new Image();
preLoad[i].src = Pic[i];
}
function runSlideShow() {
if (document.all) {
document.images.SlideShow.style.filter="blendTrans(duration=2)";
document.images.SlideShow.style.filter="blendTrans(duration=crossFadeDuration)";
document.images.SlideShow.filters.blendTrans.Apply();
}
document.images.SlideShow.src = preLoad[j].src;
if (document.all) {
document.images.SlideShow.filters.blendTrans.Play();
}
j = j + 1;
if (j > (p - 1)) j = 0;
t = setTimeout('runSlideShow()', slideShowSpeed);
}
//  End -->
Avatar billede zac Nybegynder
14. januar 2006 - 23:16 #1
Har kigget lidt rundt - men kan jo ikke min JS - men noget i denne retning indsat før var Pic ovenfor:

var path = 'pics/'; // Starting directory
function thefiles() {
// Puts the file names of this directory into an array
var file_array = get_files(path).split(',');
// hed split('|') hvor jeg tog den fra, hvorfor?
}
Og hvordan så få den forbundet med var Pic?
Kunne det ikke være på rette vej?
Avatar billede roenving Novice
15. januar 2006 - 05:43 #2
Hvis du skal aflæse et directory på serveren skal du bruge et serverside scriptingsprog ...
Avatar billede zac Nybegynder
15. januar 2006 - 11:58 #3
Så man kan godt - jf. nævnte javascrip - hente (aflæse) bestemte filer, men ikke hvilke filer, der er i et bestemt directory?
Avatar billede roenving Novice
16. januar 2006 - 04:31 #4
Ja, du bliver nødt til fra serveren at fortælle javascriptet, hvilke filer, der skal læses !-)

-- hvis du har et bestemt skema som det viste kan du dog godt loope igennem numrene ...
Avatar billede zac Nybegynder
17. januar 2006 - 12:10 #5
ok
Jeg har valgt en anden løsning, springer over, hvor gærdet er lavest:
Da billederne alligevel skal have et sorteringsnummer ved upload, bruger jeg det som filnavn.jpg (så skal man da i det mindste ikke omdøbe sine filer før upload) - men skal så stadig have et bestemt antal billeder, lever med det indtil videre :-(
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