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

Animacja/transition elementu, który otrzymał klasę poprzez jQuery

Object Storage Arubacloud
0 głosów
569 wizyt
pytanie zadane 9 września 2018 w HTML i CSS przez bulit000 Początkujący (460 p.)
edycja 9 września 2018 przez bulit000
Hej

Męczę się z tym parę dni i postanowiłem zwrócić się o pomoc.

Mam na stronie floatingujące menu. Po przekroczeniu iluśtam pikseli na scrollu, zmieniają mi się klasy w jQ:

https://codepen.io/anon/pen/WgdMxZ

I wtedy operuję na klasie z dodatkiem .active

Pytanie:

Jak wygładzić, zaanimować to przejście? Wszystko dzieje się nagle, a chciałbym przynajmniej zrobić 0.2s transition. Dodanie wejściowej animacji w CSS w klasie .active też nic nie daje... Wydaje mi się, że ta klasa odpala się od razu po załadowaniu strony i animacja wykonuje się poza sceną, a nie w chwili przypisania klasy do elementu.
komentarz 9 września 2018 przez Tomek Sochacki Ekspert (227,510 p.)
a dałbyś nam kod, np. na codepen abyśmy mogli spróbować Ci pomóc :) ?
komentarz 9 września 2018 przez bulit000 Początkujący (460 p.)

Jasne, naskrobałem i zedytowałem pierwszego posta smiley

komentarz 10 września 2018 przez shotokan Nałogowiec (39,660 p.)
A niby co chcesz animować, skoro w CSS nic się nie zmienia poza właściwością position? Tej właściwości się nie da animować bo niby jak.

1 odpowiedź

0 głosów
odpowiedź 9 września 2018 przez bulit000 Początkujący (460 p.)
...
komentarz 10 września 2018 przez zgrybus Pasjonat (24,860 p.)
strona leci w pętli nieskończonej, dziwny ten pen :)
komentarz 10 września 2018 przez bulit000 Początkujący (460 p.)
w "pętli nieskończonej"?

W każdym razie, to co chciałem pokazać jest widoczne.
komentarz 10 września 2018 przez zgrybus Pasjonat (24,860 p.)
No to chyba raczej u mnie błąd, w ogóle ten pen mi się nie wyświetla ( cały czas się odświeża )
komentarz 10 września 2018 przez bulit000 Początkujący (460 p.)
HTML:


<html>
  <script
  src="https://code.jquery.com/jquery-3.3.1.min.js"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  crossorigin="anonymous"></script>
<body>
<div class="svg_body"></div>
</body>
</html>


CSS:


body
{
  height: 4000px;
}
.svg_body
{
  position: relative;
  width: 200px;
  height: 200px;
  background-color: green;
}

.svg_body.active
{
  position:fixed;
  width: 200px;
  height: 200px;
  background-color: green;
}


JS:


function scrolledUp()
{
    $('.svg_body').removeClass('active');
 }

function scrolledDown()
{
    $('.svg_body').addClass('active');
}

$(window).scroll(function () {
    if ($(window).scrollTop() > 300) {
       scrolledDown()
    }
    else
    {
     scrolledUp()
    }
});



Zielony kwadrat, który przykleja się do górnej krawędzi ekranu po przekroczeniu 300px w doł.

 

komentarz 10 września 2018 przez zgrybus Pasjonat (24,860 p.)
wartości position nie da się animować :P
komentarz 10 września 2018 przez zgrybus Pasjonat (24,860 p.)
Zawsze możesz użyć position sticky :)
komentarz 10 września 2018 przez bulit000 Początkujący (460 p.)
Czu sticky czy fixed - bez znaczenia. Chodzi mi o znalezienie rozwiązania dla wygładzenia jakaś animacją włączania display... Jeśli się nie da animować, może istnieje jakaś okrężna droga?
komentarz 10 września 2018 przez shotokan Nałogowiec (39,660 p.)

Jak chcesz animować wejście jakiegoś elementu na stronę można wykorzystać np. transform, np.
 

element {
  transform: scale(0);
  transition: 1s;
}

element.active {
  transform: scale(1);
}

 

komentarz 11 września 2018 przez bulit000 Początkujący (460 p.)
Dobry tip, dzięki!

Podobne pytania

0 głosów
1 odpowiedź 137 wizyt
0 głosów
1 odpowiedź 244 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...