Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
prosty pokaz zdjęć - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: xHTML, CSS, JavaScript (https://www.webmastertalk.pl/forum-xhtml-css-javascript)
+--- Wątek: prosty pokaz zdjęć (/thread-prosty-pokaz-zdjec)



prosty pokaz zdjęć - run_away - 01-07-2010

Witam!

Mam na stronie ( www.tykwa.info ) taki mały pokaz zdjęć po lewej stronie. Działa on na podstawie tego skryptu:

Kod:
<script>
   <!--

//configure the paths of the images, plus corresponding target links
   slideshowimages("img/slajdy/1.jpg","img/slajdy/2.jpg","img/slajdy/3.jpg","img/slajdy/4.jpg","img/slajdy/5.jpg","img/slajdy/6.jpg","img/slajdy/7.jpg","img/slajdy/8.jpg","img/slajdy/9.jpg")
   slideshowlinks("galeria_lampy.html","galeria_roslina.html","galeria_lampy.html","galeria_lampy.html","galeria_lampy.html","galeria_roslina.html","galeria_lampy.html","galeria_lampy.html","galeria_inne.html")

//configure the speed of the slideshow, in miliseconds
   var slideshowspeed=5000

var whichlink=0
   var whichimage=0
   function slideit(){
   if (!document.images)
   return
   document.images.slide.src=slideimages[whichimage].src
   whichlink=whichimage
   if (whichimage<slideimages.length-1)
   whichimage++
   else
   whichimage=0
   setTimeout("slideit()",slideshowspeed)
   }
   slideit()

//-->
</script>

zresztą wszystko jest w źródle.

Czy ktoś mógłby mi poradzić jak zmienić kod, żeby obrazki wyświetlały się losowo i nie trzeba było wprowadzać ich ręcznie tylko, podać folder w którym się znajdują wszystkie obrazki? Bardzo ułatwiło by mi to pracę, ale zbytnio nie mam pojęcia jak to zrobić:/

pzdr


RE: prosty pokaz zdjęć - pacior - 05-07-2010

Hej, na początku, podzielę twoje zadanie na dwa podzadania:
1. losować obrazki
2. pobierać zdjęcia automatycznie z folderu

A propo 1 - losowanie obrazków
sprawa jest prosta, używając klasy Random w javascripcie możemy wybierać losowe obrazki.
Oto zmieniony kod metody slideIt()
Kod:
function slideit(){
   if (!document.images)
   return
   document.images.slide.src=slideimages[whichimage].src
   whichlink=whichimage
var rand_no = Math.random();
rand_no = Math.ceil((rand_no * slideimages.length))-1;
whichimage = rand_no;
//   if (whichimage<slideimages.length-1)
//  whichimage++
   //else
   //whichimage=0
  
   setTimeout("slideit()",slideshowspeed)
   }
odkomentowałem stary kod a poza nim tutaj widzimy nowy kod losujący elementy z tablicy slideimages gdzie przechowywane są zdjęcia.
Math.ceil to funkcja podłogi, czyli zaokrąglanie w dół, rand_no losuję nam liczbę z przedziału 0-1 i mnożymy ją potem przez długość slideimages. Jak mamy pięć elementów, to otrzymamy rzut pinezką w pola od 1 do 5 a więc losowanie.
A propos 2. Siedziałem trochę nad tym i nie da sie w javascripcie pobrać zawartości folderu, jest kontrolka activeX ale to już kombinowanie a może być problem z kompatybilnością i nie każdy chce activeX. Sensownie było by tutaj użyć kodu php i przemienić trochę javascript. Jeśli masz php u ciebie na serwerze to napisz, napiszę ci ten kod.
Pytanie funkcjonalne do kodu - losowanie zdjęć pobieramy z folderu ale co z odnośnikami do tych zdjęć? tak czy owak trzeba je podać ręcznie..

Pozdrawiam