Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Zmiana odległości diva
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Hipolit
Witam. Celem jest to, aby po wciśnięciu strzałki w lewo div przesunął się w lewo o 1px.


W tym wypadku kwadrat przesuwa się w w lewo i jest oddalony od lewej krawędzi o 10px. Wszystko ok.
Problem zaczyna się, gdy chcę odjąć 1px ( aby przesuwało się po kawałku ).
Kod
function zmianaPolozenia(e){
            element=document.getElementById("blok");    
            if(e.keyCode==37) element.style.left="10px";


To już nie działa.
Kod
if(e.keyCode==37) element.style.left=element.style.left-"1px";


Tak, więc problemem jest to, jak zapisać odejmowanie o 1px. Z góry dziękuję za pomoc.
kamil4u
- Wyrażenie --> element.style.left <-- da Ci w wyniku coś w stylu: "10px"
- Musisz z tego zrobić liczbę -> parseInt
- Następnie musisz od tej liczby odjąć 1
- Wpisać nową wartość do listy
- Zmienić element.style.left na --> element.style.left = nowaWartosc+'px' <--
Hipolit
Ok. Tworzę zmienną pomocniczą i zmieniam wartość element.style.left na liczbę:
Kod
var pom=parseInt(element.style.left);
var a=pom-1;
element.style.left=a+'px';

Nie działa. Gdzieś jest błąd, bo nie wiem czy dobrze zrozumiałem.

kamil4u
Działa!

Dokładnie Twój kod:
[JAVASCRIPT] pobierz, plaintext
  1. <div style="position: absolute; left: 200px; top: 300px; width: 100px; height: 100px; border: 1px solid #000; background: #f0f;" id="test"></div>
  2.  
  3. <input type="button" value="klik" id="click">
  4.  
  5. <script>
  6. document.getElementById("click").onclick = function(){
  7. var element = document.getElementById("test");
  8.  
  9. /* TWÓJ KOD Z POSTU */
  10. var pom = parseInt(element.style.left);
  11. var a = pom-1;
  12. element.style.left = a+'px';
  13.  
  14. }
  15. </script>
[JAVASCRIPT] pobierz, plaintext
Hipolit
Faktycznie działa, dzięki wielkie.
Mam jeszcze jedno pytanie. Dałoby się to zrobić za pomocą strzałek. W takim sensie, że użytkownik naciska strzałkę w lewo i div zmienia pozycję tak jak tutaj smile.gif
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.