Mam następujący kod:Jak animować div użyciem CSS3
$('.div-1').on('click', function() {
$('.block').addClass('animated');
});
$('.div-2').on('click', function() {
$('.block2').addClass('animated');
});
html,
body {
height: 100%;
}
.div-1 {
display: inline-block;
padding: 40px;
background: tomato;
}
.div-2 {
display: inline-block;
padding: 40px;
background: tan;
}
.block2 {
background: green;
}
.animated {
-webkit-animation: animateThis 0.2s ease;
animation: animateThis 0.2s ease;
-webkit-animation-fill-mode: forwards;
animation-fill-mode: forwards;
}
.block {
background: red;
}
@-webkit-keyframes animateThis {
0% {
height: 0;
width: 0;
}
100% {
height: 100%;
width: 100%;
}
}
keyframes animateThis {
0% {
height: 0;
width: 0;
}
100% {
height: 100%;
width: 100%;
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="div-1"></div>
<div class="div-2"></div>
<section class="block"></section>
<section class="block2"></section>
Oto PEN
Próbuję robić: po kliknięciu div-1
lub div-2
odpowiednią animację dla sekcji block
i block2
powinien pochodzić z centrum dolnego z centrum z div-1
lub div-2
. Aktualnie rozpoczyna animowanie od lewego rogu .
Moje pytanie brzmi: w jaki sposób mogę uzyskać animacji pochodzą z dolnej środkowej z div-1
lub div-2
a nie lewym rogu. Ponadto po kliknięciu na div-1
lub div-2
otwarta sekcja powinna zostać zamknięta (z odwróconą animacją sposobu jej otwierania), a kliknięty przycisk div
powinien zostać otwarty jako nowa animacja. Jak to zrobić za pomocą skryptów? Nie chcę używać zewnętrznych bibliotek (animate.css). Próbowałem kilku podejść do tego, ale nie mam pojęcia, jak to zrobić, ponieważ nie potrafię wypracować logiki.
Wycofywanie animacji działa poprawnie, ale muszę skupić się na pozycji, w której ładuje się animacja. – Shanaka
@Shanaka Mam zaktualizowaną odpowiedź dla pozycji obciążenia animacji – Dilip
Jest to bardzo pomocne – Shanaka