Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Inicjowanie banalnego skryptu
lubiemdziem
post 21.11.2012, 13:05:47
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.06.2008

Ostrzeżenie: (0%)
-----


Witam..
Mam taki oto krótki skrypt:

  1. <!DOCTYPE html>
  2. <meta charset="utf-8" />
  3. <script language="JavaScript">
  4. var images = new Array()
  5. images[0] = "img1.png";
  6. images[1] = "img2.png";
  7. setTimeout("changeImage()", 40);
  8.  
  9. var x = Math.floor(Math.random()*2);
  10.  
  11. function changeImage()
  12. {
  13. document.getElementById("img").src=images[x]
  14. }
  15. changeImage();
  16. </head>
  17. <img id="img" src="img0.png" >
  18. </body>
  19. </html>



Jak widać w linii 17. próbowałem zainicjować skrypt (docelowo zamiania obrazka co 40ms). Co robię źle?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
nospor
post 21.11.2012, 13:13:43
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przecież gdy robisz pierwsze changeImage() to element o ID IMG jeszcze nie istnieje..... robisz go dopiero parę linijek później...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lubiemdziem
post 21.11.2012, 13:17:28
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.06.2008

Ostrzeżenie: (0%)
-----


Rozumiem, jednak to nie rozwiązuje mojego problemu. Jak już się domyślacie jestem kompletnym laikiem w temacie, ale wydaje mi się, że inicjowanie funkcji changeImage() nie ma wpływu na stałą x.

Czy mam wrzucić stałą x w funkcję, która zainicjuje?

Sorry za problem, ale to nie jest łatwe gdy to jest Twój pierwszy skrypt
Go to the top of the page
+Quote Post
nospor
post 21.11.2012, 13:27:53
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To inaczej do tego podejdźmy.... To może napisz jaki masz problem, co ci nie działa, a działać powinno. I jak wg ciebie działać powinno


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lubiemdziem
post 21.11.2012, 13:32:48
Post #5





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.06.2008

Ostrzeżenie: (0%)
-----


Celem skryptu jest "zamiana" obrazka co jakiś określony czas.

Obrazkó będzie nieco więcej niż 2, a x to liczba losowa.



Obecnie jest tak: Obrazek zmienia się przy odświeżeniu całej strony, brakuje dynamiki, którą chciałem zainicjować za pomocą changeImage()
Go to the top of the page
+Quote Post
nospor
post 21.11.2012, 13:34:18
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Wartośc dla zmiennej X określasz tylko raz. Potem jej nie zmieniasz. No to chyba logiczne, że za każdym razem będzie to ta sama wartość a co za tym idzie ten sam obrazek.

X masz ustalać wtedy, gdy zmieniasz obrazek.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lubiemdziem
post 21.11.2012, 13:42:02
Post #7





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.06.2008

Ostrzeżenie: (0%)
-----


Nie wiem, nie potrafię.....
Go to the top of the page
+Quote Post
nospor
post 21.11.2012, 13:42:58
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie nie potrafisz a ci sie poprostu nie chce pomyśleć....

Kod


function changeImage()

{
var x = Math.floor(Math.random()*2); // O TU MA BYĆ

document.getElementById("img").src=images[x];

}

Naprawdę takie trudne?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lubiemdziem
post 21.11.2012, 14:07:25
Post #9





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 13.06.2008

Ostrzeżenie: (0%)
-----


Skrypt nadal nie działa tak jak powinien:

  1. <!DOCTYPE html>
  2. <meta charset="utf-8" />
  3. <script language="JavaScript">
  4. var images = new Array()
  5. images[0] = "img1.png";
  6. images[1] = "img2.png";
  7. setTimeout("changeImage()", 40);
  8.  
  9. function changeImage()
  10. {
  11. var x = Math.floor(Math.random()*2);
  12. document.getElementById("img").src=images[x];
  13. }
  14. </head>
  15. <img id="img" src="img0.png" >
  16. <script language="JavaScript">
  17. changeImage();
  18. </body>
  19. </html>


edit down:
działa, dzięki
Go to the top of the page
+Quote Post
nospor
post 21.11.2012, 14:12:18
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




setTimeout("changeImage()", 40); odpala funkcje raz. Jak chcesz mieć to kilka razy to musisz użyć albo setInterval() albo odpalać ten kod w funcji o tak:
Kod


function changeImage()

{
setTimeout("changeImage()", 500); //za pól sekundy znowu się wywoła

var x = Math.floor(Math.random()*2);

document.getElementById("img").src=images[x];

}

I na przyszłość jak coś nadal nie działa to napisz co nie działa. Luknij też do konsoli błędów czy przypadkiem nie ma jakis błędów js.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 10:51