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

problem z transition

Object Storage Arubacloud
0 głosów
318 wizyt
pytanie zadane 24 grudnia 2018 w HTML i CSS przez YakumoPL Obywatel (1,970 p.)

Cześć! Na mojej stronie umieściłem taki kod js

<script>
$(document).ready(function(){
    $("#button").click(function(){
        $(".more").toggleClass("active");
    });
});
</script>

Rozwijana galeria działa, lecz bez żadnej animacji. Dodałem w css w klasie active 

transition: transform 1s ease-in-out;

Nadal żadnej animacji nie widać. Co mogę jeszcze zrobić? Pozdrawiam

1 odpowiedź

+2 głosów
odpowiedź 25 grudnia 2018 przez arces Pasjonat (17,700 p.)
wybrane 25 grudnia 2018 przez YakumoPL
 
Najlepsza
Transition jedynie służy do ustalania długości, efektu, ewentualnie opóźnienia czasu animacji. Nie wiemy co zdefiniowałeś dla transform przy tym, jak element "more" ma klasę i jej nie ma :)
komentarz 25 grudnia 2018 przez YakumoPL Obywatel (1,970 p.)
Rozumiem. Czyli w more daję transform, a w active transition i powinno działać?
komentarz 25 grudnia 2018 przez arces Pasjonat (17,700 p.)

Dla obu dajesz transform, od tego zależy jak wygląda animacja. Transition dajesz tylko do more, chyba że nie chcesz, aby się animowało w obie strony.

 

Kod mniej więcej tak powinien wyglądać:

.more {
   transform: translateX(-100%);
   transition: transform .5s ease;
}

.more.active {
   transform: translateX(0);
}

 

Tutaj masz przesunięcie elementu o 100% w poziomie. Animacja jest płynna w obie strony.

komentarz 25 grudnia 2018 przez YakumoPL Obywatel (1,970 p.)
Dziękuję bardzo za pomoc :D. Zauważyłem, że trochę błędów mam w tym kodzie. Postaram się poprawić i dam znać. Pozdrawiam i wesołych świąt :)
komentarz 25 grudnia 2018 przez YakumoPL Obywatel (1,970 p.)

Niestety nadal nic :/ Wygląda to tak

<div id="obrazy">
	<div class="obraz"><img src="img/obrazy/obraz1.jpg"></div>
	<div class="obraz"><img src="img/obrazy/obraz2.jpg"></div>
	<div class="obraz"><img src="img/obrazy/obraz3.jpg"></div>
	<div style="clear:both"></div>
	
	
	<div class="more">
	<div class="obraz"><img src="img/obrazy/obraz7.jpg"></div>
	<div class="obraz"><img src="img/obrazy/obraz8.jpg"></div>
	<div class="obraz"><img src="img/obrazy/obraz9.jpg"></div>
	<div style="clear:both"></div>
	<div class="obraz"><img src="img/obrazy/obraz10.jpg"></div>
	<div class="obraz"><img src="img/obrazy/obraz11.jpg"></div>
	<div class="obraz"><img src="img/obrazy/obraz12.jpg"></div>
	
	</div>
	<div id="przycisk">Pokaż więcej</div>
.obraz
{
float: left;
 margin-bottom: 5vh;
width: 30%;
margin-left: 3%;
position: relative;
  }



.more {
	display: none;
	transform: translateX(-100%); /*Tutaj dałem + oraz - nic to nie zmienia*/
   transition: transform .5s ease;
}


.more.active
{
	transform: translateX(0);
}
.active
{
display: block;
transform: translateX(0);
}
<script>
$(document).ready(function(){
    $("#przycisk").click(function(){
        $(".more").toggleClass("active");
    });
});
</script>

Przepraszam, że zawracam głowę, ale zupełnie nie potrafię sobie z tym poradzić :(

komentarz 25 grudnia 2018 przez arces Pasjonat (17,700 p.)
Dla klasy more masz display: none, dlatego nic nie jest widoczne.
komentarz 25 grudnia 2018 przez YakumoPL Obywatel (1,970 p.)
Racja, teraz wszystko fajnie, ale pojawia się kolejny problem. Jest ogromny margines między ostatnim zdjęciem a przyciskiem "pokaż więcej" Da się coś z tym zrobić?
1
komentarz 25 grudnia 2018 przez arces Pasjonat (17,700 p.)
Ogólnie to zrezygnuj z float'ów i przesiądź się na flexbox'a. Co do doładowywania itemów (bo o to tak naprawdę Ci chodzi), to robi się to w trochę inny sposób :)

Jedynym pomysłem na to, żeby tej przerwy nie było to pozycja absolutna dla tego wiersza, jednak będzie wtedy kłopot (dużo kombinowania) z animacją itd.

Na Twoim miejscu po prostu bym podpatrzył jak inni takie sprawy rozwiązują. Na innych stronach, są pewnie tutoriale do podobnych rzeczy i zrobić tak samo. Nie ma co wymyślać koła od nowa ;)
komentarz 26 grudnia 2018 przez YakumoPL Obywatel (1,970 p.)
Bardzo dziękuję :)

Podobne pytania

0 głosów
1 odpowiedź 468 wizyt
0 głosów
1 odpowiedź 109 wizyt
pytanie zadane 20 maja 2017 w HTML i CSS przez Dorian Bajorek Dyskutant (7,920 p.)
0 głosów
1 odpowiedź 137 wizyt

92,556 zapytań

141,404 odpowiedzi

319,561 komentarzy

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

...