Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana wartości styli
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Mefiuu
Witam. Bawiąc się dalej z JavaScriptem zrobiłem sobie "przesuwający się klocek" winksmiley.jpg Ogólnie ma opcje przesunięcia w lewo, prawo, ustawienia na środku, pojawienia się i schowania oraz zmiany koloru. Całość wygląda tak:

[JAVASCRIPT] pobierz, plaintext
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl-PL">
  3. <head>
  4. <title>Klocek</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
  6.  
  7. <script type="text/javascript">
  8. window.onload = Laduj;
  9.  
  10. function Laduj () {
  11. document.getElementById('lewo').onclick = wLewo;
  12. document.getElementById('srodek').onclick = Srodek;
  13. document.getElementById('prawo').onclick = wPrawo;
  14. document.getElementById('pokaz').onclick = Pokaz;
  15. document.getElementById('schowaj').onclick = Schowaj;
  16. document.getElementById('color').onclick = Kolor;
  17. }
  18.  
  19. function wLewo() {
  20. var blok = document.getElementById('blok');
  21.  
  22. blok.style.marginLeft = '0px';
  23. }
  24.  
  25. function Srodek() {
  26. var blok = document.getElementById('blok');
  27.  
  28. blok.style.marginLeft = '200px';
  29. }
  30.  
  31. function wPrawo() {
  32. var blok = document.getElementById('blok');
  33.  
  34. blok.style.marginLeft = '400px';
  35. }
  36.  
  37. function Pokaz() {
  38. var blok = document.getElementById('blok');
  39.  
  40. blok.style.display = 'block';
  41. }
  42.  
  43. function Schowaj() {
  44. var blok = document.getElementById('blok');
  45.  
  46. blok.style.display = 'none';
  47. }
  48.  
  49. function Kolor() {
  50. var losuj = Math.round(5*Math.random())
  51. var blok = document.getElementById('blok');
  52.  
  53. switch(losuj) {
  54. case 1:
  55. blok.style.backgroundColor = '#932';
  56. break;
  57. case 2:
  58. blok.style.backgroundColor = '#fc7';
  59. break;
  60. case 3:
  61. blok.style.backgroundColor = '#03a';
  62. break;
  63. case 4:
  64. blok.style.backgroundColor = '#1ac';
  65. break;
  66. case 5:
  67. blok.style.backgroundColor = '#9fb';
  68. break;
  69. default:
  70. blok.style.backgroundColor = '#069';
  71. }
  72. }
  73. </script>
  74.  
  75. </head>
  76. <body>
  77.  
  78. <a href="#" id="lewo">Przesuń w lewo</a> || <a href="#" id="srodek">Środek</a> || <a href="#" id="prawo">Przesuń w prawo</a> || <a href="#" id="schowaj">Schowaj</a> || <a href="#" id="pokaz">Pokaż</a> || <a href="#" id="color">Zmień kolor</a>
  79.  
  80. <div id="blok" style="width: 200px; height: 200px; background-color: #069; margin-left: 200px; margin-top: 100px; display: block;"></div>
  81.  
  82.  
  83. </body>
  84. </html>
[JAVASCRIPT] pobierz, plaintext


Całość działa na miarę moich oczekiwań. Jednak chciałem zrobić tak, że po wciśnięciu "w lewo" aby za każdym razem przesuwało mi się o -10px. Nie wiem jednak jak to wykonać. Dałem tak:

[JAVASCRIPT] pobierz, plaintext
  1. function wLewo() {
  2. var blok = document.getElementById('blok');
  3.  
  4. blok.style.marginLeft -= 100;
  5. }
[JAVASCRIPT] pobierz, plaintext


Próbowałem też na inne możliwe sposoby, z cudzysłowami etc. jednak nie działa. Stąd moje pytanie: jak odjąć / dodać do wartości?

Drugie moje pytanie to: dlaczego nie mogę styli umieszczać w sekcji <head>? Wtedy mi żadna funkcja nie "łapie" że tam są. Muszą być liniowo dodane. A co jeśli będę miał zewnętrzny arkusz? Wtedy manipulacja odpada?

Pozdrawiam.
kamil4u
ad. 1 Dobrze dałeś, tylko zapomniałeś o jednostce. Warto też najpierw skonwertować wartość na liczbę( parseInt ), bo przy dodawaniu możesz mieć problem.
ad. 2 Możesz, ale zapis - el.style odwołuje się do atrybutu style(w HTML), są sposoby, aby dostać się na do styli zapisanych w head - było na forum(nawet sam kiedyś opisywałem to komuś ) - poszukaj, a znajdziesz smile.gif
Mefiuu
dzięki, parseInt(); pomogło winksmiley.jpg co do tamtego 2 to rzeczywiście muszę poszukać ale to pewnie dopiero w dalszej nauce z JavaScriptem. Pozdrawiam.
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.