• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

JavaScript - Poruszanie plikiem SVG za pomocą klawiatury.

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
235 wizyt
pytanie zadane 17 maja 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)

Witam mam kod na poruszanie się postaci, wygląda następująco:

const player = document.querySelector('.player');

    //Sprawdzanie rotacji postaci
    var rotation = 0;

    //Ruchliwosc postaci
    var distance = 30;
    var distance2 = 20;

    //Ładowanie strzału
    var shotLoading = 0;

const move = (e) => {

    switch(e.keyCode) {

        case 65: //Strzałka w lewo
            if (rotation == -90) {
                player.style.left = player.offsetLeft - distance +'px';
                break;
            } else {
                player.style.transform = "rotate(-90deg)";
                rotation = -90;
                break;
                }

        case 68: //Strzałka w prawo
            if (rotation == 90) {
                player.style.left = player.offsetLeft + distance2 +'px';
                break;
            } else {
                player.style.transform = "rotate(90deg)";
                rotation = 90;
                break;
                }

        case 87: //Strzałka w górę
            if (rotation == 0) {
                player.style.top = player.offsetTop - distance +'px';
                break;
            } else {
                player.style.transform = "rotate(0deg)";
                rotation = 0;
                break;
                }

        case 83:  //Strzałka w dół
            if (rotation == 180) {
                player.style.top = player.offsetTop + distance2 +'px';
                break;
            } else {
                player.style.transform = "rotate(180deg)";
                rotation = 180;
                break;
                }

        case 32:  //Spacja
            if (shotLoading == 0) {
                shotLoading = 10;
                break;
            } else {
                alert('noShot');
                break;
                }
    }
}
window.addEventListener("keydown", move);

Cały kod działa poprawnie, gdy obiekt klasy "player" jest wczytywany za pomocą: <img class="player" src="img/tank.svg"> .

Natomiast, gdy chcę animować poszczególną sekcje obrazka svg (Dodaję cały kod svg do pliku html i nadaję mu klasę "player") wykonuje się tylko rotate, a przesuwanie się obiektu nie działa.

 

Proszę o pomoc.

komentarz 17 maja 2020 przez ScriptyChris Mędrzec (190,190 p.)

Czy w konsoli są jakieś błędy? Sprawdź jakie wartości mają propertisy odpowiedzialne za przesuwanie (player.style.top itd.) - może nie są prawidłowo konkatenowane przy obsłudze eventu.

komentarz 17 maja 2020 przez Bakkit Dyskutant (7,600 p.)
Konsola nie wyrzuca błędów.

Domyślnie top i left mam ustawione na 50% ale gdy plik svg jest wczytywany poprzez <img> porusza się poprawnie.

Przy próbie poruszania się top i left nie zmieniają swoich wartości w pliku css.
komentarz 17 maja 2020 przez ScriptyChris Mędrzec (190,190 p.)

Przy próbie poruszania się top i left nie zmieniają swoich wartości w pliku css.

Modyfikacji styli obiektu player dokonujesz w formie inline, a takie style nie są widoczne w arkuszu CSS, a na poszczególnych elementach HTML. Jeśli chcesz zobaczyć czy zmienia się styl inline obiektu, to sprawdź przez inspektor elementów (prawym przycisk na element na stronie i "zbadaj element"). Możesz też wypisać w konsoli poszczególne style po ich modyfikacji.

komentarz 17 maja 2020 przez Bakkit Dyskutant (7,600 p.)
No to i tak właściwości się nie zmieniają.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
3 odpowiedzi 3,059 wizyt
pytanie zadane 14 grudnia 2015 w HTML i CSS przez artimal Gaduła (4,800 p.)
0 głosów
2 odpowiedzi 5,139 wizyt
0 głosów
0 odpowiedzi 437 wizyt

93,176 zapytań

142,185 odpowiedzi

321,979 komentarzy

62,506 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1637p. - dia-Chann
  2. 1497p. - Łukasz Piwowar
  3. 1372p. - CC PL
  4. 1370p. - Łukasz Eckert
  5. 1351p. - Tomasz Bielak
  6. 1328p. - Michal Drewniak
  7. 1312p. - Łukasz Siedlecki
  8. 1302p. - rucin93
  9. 1273p. - Adrian Wieprzkowicz
  10. 1232p. - Mikbac
  11. 1181p. - rafalszastok
  12. 1169p. - Grzegorz Aleksander Klementowski
  13. 1155p. - Piotr Aleksandrowicz
  14. 1149p. - Michał Telesz
  15. 1127p. - Mariusz Fornal
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...