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

Problem z animowaniem się zmieniającego się tekstu

Object Storage Arubacloud
+1 głos
145 wizyt
pytanie zadane 23 sierpnia 2020 w HTML i CSS przez Shiro Stary wyjadacz (10,300 p.)

Hej! 

Najłatwiej będzie mi pokazać o co mi chodzi na przykładzie: https://hryszko.dev/dihqyYJZqNUv/

I love ... animuje się perfekcyjnie, jednak I code in ... już nie chociaż są na podstawie tego samego stylu animacji
 

@keyframes animate{

	0%{
		opacity: 0;
		transform: translateY(50%);
	}
	50%{
		transform: translateY(0);
	}
	100%{
		opacity: 1;
	}
}

.animate{
	animation: animate 1s ease-in-out;
}

Tzn. dla tego elementu wyżej jest tylko opacity a dla tego na niżej jest jeszcze translate .. 

Druga sprawa to JS, otóż ta część kodu jest na podstawie strony znajomego (za zgodą oczywiście) i nie do końca rozumiem 4 linie:
 


		$( '#codeLang').html(lang[langRandId]);

		$( '#codeLang').removeClass('animate');
	    void document.getElementById("codeLang").offsetWidth;
		$( '#codeLang').addClass('animate');

Ja to rozumiem jako stworzenie voida ktory odczytuje szerokość od #codeLang. Przy czym nie bardzo widze sens tego .. dodatkowo animacja przestaje dzialac przy wylaczeniu tej linii wiec ewidentnie jest ona potrzebna...

Dla ułatwienia pliki: JS | CSS | HTML 

 

Z góry dziękuje za pomoc :) 

1 odpowiedź

+1 głos
odpowiedź 23 sierpnia 2020 przez ScriptyChris Mędrzec (190,190 p.)
wybrane 24 sierpnia 2020 przez Shiro
 
Najlepsza

Jeśli chodzi o problem z działaniem transform na elemencie #codeLang, to zdaje się, że transform nie działa na elementach inline (a taki jest <span>, który próbujesz transformować) - ustawienie mu display: inline-block powoduje, że transformacja (przesuwania w pionie) działa.

Co do pytania o operator void, to on powoduje, że użyte razem z nim wyrażenie zamiast zwrócić swoją wartość (w tym przypadku wartość property offsetWidth elementu) zwróci undefined. Nie mam pewności, dlaczego ten operator został tutaj użyty, ale kojarzę przypadki gdzie żeby wymusić przeliczenie property danego elementu w DOM trzeba odwołać się do jego property (jeśli przypomnę sobie szczegóły, to dopiszę je w komentarzu).

komentarz 24 sierpnia 2020 przez VBService Ekspert (253,340 p.)
edycja 24 sierpnia 2020 przez VBService

Doładnie jak @JSHolic, zauważył, zamian tego span-a:

<span class="color animate" id="codeLang" style="color: rgb(161, 74, 118);">pytnon</span>

na div-a

<div class="color animate" id="codeLang" style="color: rgb(161, 74, 118);">pytnon</div>

załatwia sprawę: in-action wink

[ What purpose does void element.offsetWidth serve? ] [ void operator ]

 

komentarz 24 sierpnia 2020 przez Shiro Stary wyjadacz (10,300 p.)
Działa, dziękuje Wam serdecznie za pomoc!
1
komentarz 24 sierpnia 2020 przez VBService Ekspert (253,340 p.)
edycja 24 sierpnia 2020 przez VBService

Twoja animacja bez jQuery, i z Moim małym "liftingiem": wink

[ Edit ]

span pozostawiony i dopisane: wink (@JSHolic yes)

span.color {
  display: inline-block;
}

lub

span#codeLang {
  display: inline-block;
}

https://codepen.io/vbservice/pen/poyRdva

1
komentarz 24 sierpnia 2020 przez ScriptyChris Mędrzec (190,190 p.)

@VBService, nie ma potrzeby zamieniać span na div (span nawet bardziej tu pasuje, ponieważ wrapuje tekst w linii), wystarczy dodać property display na inline-block

Podobne pytania

0 głosów
0 odpowiedzi 104 wizyt
pytanie zadane 7 lutego 2019 w JavaScript przez Andrzej Czarny Użytkownik (720 p.)
0 głosów
1 odpowiedź 115 wizyt
0 głosów
2 odpowiedzi 466 wizyt
pytanie zadane 16 grudnia 2016 w JavaScript przez Paweł Kieryk Początkujący (450 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...