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 -->
