Maison > Questions et réponses > le corps du texte
P粉5712335202023-08-27 10:05:10
Vous pouvez créer des effets animés simplement en utilisant des effets de transition. Pour y parvenir, vous devez définir la largeur et la hauteur du conteneur, ainsi que la position supérieure et gauche de l'élément inférieur.
Au clic, vous échangez simplement la classe de l'élément qui deviendra plus petit et la classe de l'élément qui deviendra plus grand.
Voici un lien avec un exemple : https://jsfiddle.net/fkd3ybwx/210/
HTML
<div class="card-container"> <div class="card large">A</div> <div class="card small">B</div> <div class="card small">C</div> <div class="card small">D</div> </div>
CSS
.card-container { position: relative; } .card { transition: all ease 1s; position: absolute; font-size: 24px; border: white 4px solid; box-sizing: border-box; cursor: pointer; } .small { width: 100px; height: 100px; background: blue; left: 0; top: 300px; } .small ~ .small { left: 100px; background: green; } .small ~ .small ~ .small { left: 200px; background: yellow; } .large { width: 300px; height: 300px; background: red; left: 0px; top: 0px; }
JavaScript
const smallCards = document.querySelectorAll('.card'); smallCards.forEach((smallCard) => { smallCard.addEventListener('click', (event) => { const largeCard = document.querySelector('.large'); largeCard.className = "card small"; event.target.className = "card large"; }); });