Ho seguente codice:Come animare un div con 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>
Ecco un PEN
Quello che sto cercando di fare: quando si fa clic su div-1
o div-2
l'animazione corrispondente per le sezioni block
e block2
dovrebbe provenire dal centro in basso di div-1
o div-2
. Al momento inizia l'animazione dall'angolo a sinistra.
La mia domanda è: come ottengo l'animazione provenire dalla centrale inferiore di div-1
o div-2
e non il sinistra. Inoltre, quando si fa clic su div-1
o div-2
, la sezione attualmente aperta deve essere chiusa (con l'animazione inversa di come viene aperta) e il corrispondente clic su div
deve essere aperto come nuova animazione. Come può essere fatto attraverso lo scripting? Non voglio usare librerie esterne (animate.css). Ho provato diversi approcci a questo, ma non ho idea di come farlo in quanto non riesco a elaborare la logica.
Il rollback dell'animazione funziona correttamente, ma devo concentrarmi sulla posizione in cui carica l'animazione. – Shanaka
@Shanaka Ho aggiornato la risposta per la posizione del carico di animazione – Dilip
Questo è molto utile – Shanaka