Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Mała galeria w JS
Forum PHP.pl > Forum > Przedszkole
piotr485
Witam, jako, że dopiero zaczynam przygodę z JS - próbuję stworzyć galerię i przyciski do niej "następne zdjęcie", "poprzednie zdjęcie".

Napisałem taki kod:
  1. <a href="#" onclick="nastepne();">nastepne</a>
  2.  
  3. var fotki = new Array (
  4. "1.jpg",
  5. "2.jpg",
  6. "3.jpg",
  7. "4.jpg",
  8. "5.jpg",
  9. "6.jpg",
  10. "7.jpg",
  11. "8.jpg"
  12. );
  13.  
  14. function nastepne(){
  15. document.write("<img src=\"" + fotki[1] + "\">");
  16. }


Problem w tym, że nie wiem jak przekazać do fotki[1], za każdym kliknięciem dodanie +1 - trzeba to zrobić za pomocą pętli czy jak ?
Proszę o nakierowanie.

P.S. Byc może od złej strony się do tego zabieram ?


Spawnm
Poczytaj o getElementByID[] oraz innerHTML .
document.write do galerii raczej się nie stosuje winksmiley.jpg
skowron-line
Do tego co napisał Spawnm dodaczytaj jeszcze o setAttribute tak byś mógł zmieniać atrybut <img> bo po co wstawiać do np<div> ciągle nowy obiekt img jak można w jednym tylko podmieniać źródło.
piotr485
Dobra więc napisałem sobie coś takiego i już umiem poprzez kliknięcie zmienic id dla stylów, ale jak to zrobic dla tekstu ?

Napisałem:

  1. <a href="#" onclick="nastepne();">nastepne</a>
  2. <img src="1.jpg" id="nastep" style="border: 3px solid red;">
  3.  
  4. <script type="text/javascript">
  5.  
  6. function nastepne(){
  7. var next = document.getElementById('nastep');
  8. next.style.border = "10px solid blue";
  9. }


Ale jak się odwołac do 1.jpg ? zeby zamienic je np. na 2.jpg ? I czytalem o tym innerHTML i sie doczytalem ze nie powinno sie go stosowac - chyba ze jest stosowany z rozwaga.
skowron-line
Cytat(piotr485 @ 25.08.2009, 09:58:56 ) *
Ale jak się odwołac do 1.jpg ? zeby zamienic je np. na 2.jpg ? I czytalem o tym innerHTML i sie doczytalem ze nie powinno sie go stosowac - chyba ze jest stosowany z rozwaga.

Napisałem Ci setAttribute
  1. var next = document.getElementById('nastep');
  2. next.style.border = "10px solid blue";

dajesz
  1. next.src = '2.jpg';
  2. //lub
  3. next.setAttribute( 'src', '2.jpg' );

piotr485
Zastosowałem to z innerHTML tyle, że jak pisałeś wczesniej po co za kazdym razem dawac to w div'a.

Teraz mam tak:
  1. <a href="#" onclick="nastepne();">nastepne</a>
  2. <img src="1.jpg" id="nast">
  3.  
  4.  
  5. <script type="text/javascript">
  6. var fotki = new Array (
  7. "1.jpg",
  8. "2.jpg",
  9. "3.jpg",
  10. "4.jpg",
  11. "5.jpg",
  12. "6.jpg",
  13. "7.jpg",
  14. "8.jpg"
  15. );
  16.  
  17.  
  18.  
  19.  
  20. function nastepne(){
  21.  
  22. var next = document.getElementById('nast');
  23. next.src = fotki[1];
  24.  
  25. }


Jak za każdym kliknięciem dodać +1 do fotki[1] trzeba to zrobic za pomoca petli for ? jesli tak to jaki powinnien byc wynik tej petli nie mowie o gotowcu tylko o wyniku tej petli a nie kodzie ktory tworzy ta petle



skowron-line
  1. var i =0;
  2. function nastepne(){
  3.  
  4. i++;
  5. var next = document.getElementById('nast');
  6. next.src = fotki[ i ];
  7.  
  8. }

Ale teraz zobacz funkcję length do sprawdzania ilosci elementów w tablicy i warunki IF żeby ograniczyć możliwość przerzucania zdjęć.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.