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

question-closed [JS] Problem z czekaniem

42 Warsaw Coding Academy
0 głosów
362 wizyt
pytanie zadane 22 lutego 2018 w JavaScript przez Kuba Jakubowski Gaduła (3,550 p.)
zamknięte 22 lutego 2018 przez Kuba Jakubowski

Witam, mam na mojej stronie obraz o id 'klikacz' i chcę aby się obracał. W tym celu napisałem kod JS, jednak on nie działa. W konsoli dostaję błąd:

javascript.js:3 Uncaught RangeError: Maximum call stack size exceeded

 Oto kod:

var kat = 0;

function obrot_klikacza()
{
	kat++;
	if(kat > 360) kat=0;
	var transform = "rotate("+kat+")"
	document.getElementById('klikacz').style.transform=transform;
	setTimeout(obrot_klikacza(), 1000)
}

window.onload = obrot_klikacza();

 

komentarz zamknięcia: Rozwiązany.
komentarz 22 lutego 2018 przez Tomek Sochacki Ekspert (227,490 p.)
A dlaczego nie zrobisz obrotu normalnie np. przy użyciu @keyframes i po prostu dodaniu w JS np. "click" odpowiedniej animacji? Ewentualnie na :hover lub w ogóle dodać animation jeśli ma to być ciągła animacja. Od takich rzeczy dzisiaj jest CSS, a nie JS.
komentarz 22 lutego 2018 przez Kuba Jakubowski Gaduła (3,550 p.)
Dzięki, poczytam o tym na W3 i dam znać jak coś wykombinuję.
komentarz 22 lutego 2018 przez Kuba Jakubowski Gaduła (3,550 p.)

Ok, zrobiłem to tak, dzięki.

#klikacz
{
	display: block;
	position: absolute;
	width: 100px;
	height: 100px;
	top: 50%;
	left: 50%;
	margin-top: -50px;
	margin-left: -50px;
	animation: obrot_klikacza 3.5s linear 0s infinite normal;
}

@keyframes obrot_klikacza
{
	from
	{
		transform: rotate(0deg);
	}
	to
	{
		transform: rotate(360deg);
	}
}

 

komentarz 22 lutego 2018 przez Tomek Sochacki Ekspert (227,490 p.)
Popatrz sobie na bibliotekę animace.css, a dokładniej na jej źródła na githubie:

https://github.com/daneden/animate.css/tree/master/source

I poanalizuj z dostępnym demo :)

A tak na marginesie to nie styluj po id, tylko nadaj elementowi klasę. Dzięki temu łatwiej np. dodasz za chwilę te same style innemu elementowi i możliwe będzie nadpisanie styli jeśli zajdzie taka konieczność. i druga kwestia staraj się stosować jednak nazewnictwo angielskie.

Pokombinuj też z jednostkami, aby do minimum ograniczać PX na rzecz procentów czy ewentualnie rem/em aby dać większą responsywność elementom.
komentarz 24 lutego 2018 przez Kuba Jakubowski Gaduła (3,550 p.)
Dzięki, przejrzałem tą bibliotekę i znalazłem tam kilka ciekawych rozwiązań.

A co do używania procentów zamiast px to postaram się to robić w następnych projektach, lecz tworzę grę przeglądrkową i nie było to potrzebne.

Podobne pytania

0 głosów
2 odpowiedzi 792 wizyt
pytanie zadane 2 października 2018 w JavaScript przez MrxCI Dyskutant (8,260 p.)
+1 głos
1 odpowiedź 369 wizyt
pytanie zadane 28 października 2017 w JavaScript przez lapacz.kornel Mądrala (6,930 p.)
0 głosów
1 odpowiedź 386 wizyt
pytanie zadane 19 marca 2020 w JavaScript przez kubaa322 Użytkownik (710 p.)

93,395 zapytań

142,388 odpowiedzi

322,566 komentarzy

62,753 pasjonatów

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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...