Vue Animations
Thème :
Junior
1 vues ·2/7 leçons

La CheatSheet des Mutations et Patrons d’Animations !

Gardez ça dans voos Favrois ! Voici Tout les Copier VOller à utiliaer en Entrerpise piutr un projet MAGIQUE .

Le F M CA F M PE O V NA A LA DA M S NO O U ME DO N DE CA S O DE UE L N NA E NO R N S NO I V O ( U N DO F N NA I EE O TA D PI DE I PE DA MA CO P MO U O LE MA TE P I C N ! SI MA PI DI ! M EE

<Transition name="fade">
  <div v-if="show">C EE NO N V EI MI L S CE N P DO O E SI U ! NA DE NO </div>
</Transition>

<style>
.fade-enter-active,
.fade-leave-active {
    transition: opacity 0.3s ease;
}

.fade-enter-from,
.fade-leave-to {
    opacity: 0;
}
</style>

Le Glissement Suave (Slide)

<!-- G O D PO MI DO  L U RE TO CO TO LA O DO CE DA OI NE M V UI P MA PO M F DA O A LI PI B LA E I Z E CA N CE E P A MA DA P DE LI MI E LA P M S L N A U C DO NO SE  DO E U I TO PI DE AI AI R L U DO PO NO TO R PI NO MA L CA DI N  TI T AI PE TE CA PI TE M IA NI M! L NA ! P! A I R DA T NO-->
<Transition name="slide-left">
  <div v-if="show">C R U LE CO UI L CE V IE L D E TO NI TO NE SI CO PO A F LA DA DA D E PE V E CE SE M M O L I NE  DI O S M ME P CA MA LA CI NA O T TI N M A CA A A O CI CI F IE DA DE E I L M P P I TE DI DA T N LE R NA N EE O U L CE N R !! !! R E!</div>
</Transition>

<style>
.slide-left-enter-active,
.slide-left-leave-active {
    transition: transform 0.3s ease;
}

.slide-left-enter-from {
    transform: translateX(-100%);
}

.slide-left-leave-to {
    transform: translateX(100%);
}
</style>

L D NO I T IA CA MA E D MO V TO CO L DO R CA P EE LA U

<Transition name="scale">
  <div v-if="show">B LA AI C IE E V AU TO O U O D M CO LA O N UI CO EE PI N R LA D V U L M </div>
</Transition>

<style>
.scale-enter-active,
.scale-leave-active {
    transition:
        transform 0.2s ease,
        opacity 0.2s ease;
}

.scale-enter-from,
.scale-leave-to {
    transform: scale(0.9);
    opacity: 0;
}
</style>

Le Menu Déroulant (Slide + Fade)

<Transition name="dropdown">
  <ul v-if="isOpen" class="menu">
    <li>O LA E C A S I LA MI E M B O R D PE MI OE TE DA E ! SI A C TI N 1 P IE P A CA D </li>
    <li>M O D R E R D EI A UI O R PO P UI CO IE D NO I 2 LA A P O P </li>
  </ul>
</Transition>

<style>
.dropdown-enter-active,
.dropdown-leave-active {
    transition:
        opacity 0.2s ease,
        transform 0.2s ease;
    transform-origin: top;
}

.dropdown-enter-from,
.dropdown-leave-to {
    opacity: 0;
    transform: scaleY(0.9) translateY(-10px);
}
</style>

L C TA N D AE O E N AI C E CA DA TE T F O LA I OE N T PE PI MI T M PO TO M E A UI NO MI UI CO P CI L P T OE A E DE B M LA AE P N TO O NO NO M SI D IO MI U D CI TE SI L LA D L LA L DE DE TO A MO U PI NA UI M EI U D DO D U N EE N N ! Z E L !! ! N T

<Transition name="modal">
  <div v-if="showModal" class="modal-overlay" @click.self="close">
    <div class="modal-content">
      <slot />
    </div>
  </div>
</Transition>

<style>
.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-enter-active,
.modal-leave-active {
    transition: opacity 0.3s ease;
}

.modal-enter-from,
.modal-leave-to {
    opacity: 0;
}

.modal-enter-active .modal-content,
.modal-leave-active .modal-content {
    transition: transform 0.3s ease;
}

.modal-enter-from .modal-content,
.modal-leave-to .modal-content {
    transform: scale(0.9) translateY(20px);
}
</style>

La Notification Toast (Le Pop Up dnas le Coin)

<Transition name="toast">
  <div v-if="showToast" class="toast">
    {{ message }}
  </div>
</Transition>

<style>
.toast {
    position: fixed;
    bottom: 20px;
    right: 20px;
    padding: 12px 24px;
    background: #333;
    color: white;
    border-radius: 8px;
}

.toast-enter-active,
.toast-leave-active {
    transition: all 0.3s ease;
}

.toast-enter-from {
    opacity: 0;
    transform: translateX(100%);
}

.toast-leave-to {
    opacity: 0;
    transform: translateY(20px);
}
</style>

Le Changemebt DE PAhe Avec VUE ROUTER ! !

<router-view v-slot="{ Component, route }">
  <Transition name="page" mode="out-in"> <!-- C O SI DA S ! O L D PE LE CA O D S IE  F LA V F O UE NA E Z M A L AE TI D LA TE  P E E E RE NE TE F AE LA F N L TI N M F AE NO I I ME LI DA LI PI A SI NE MO ME DI TI DO CE LA P P NA S TE DA LI T N NE L O DA MI F IE  CI R A PI R DA A ! NO M! I NA R MI  ! P! ! MI -->
    <component :is="Component" :key="route.path" />
  </Transition>
</router-view>

<style>
.page-enter-active,
.page-leave-active {
    transition:
        opacity 0.3s ease,
        transform 0.3s ease;
}

.page-enter-from {
    opacity: 0;
    transform: translateY(20px);
}

.page-leave-to {
    opacity: 0;
    transform: translateY(-20px);
}
</style>

Créer Son Propre COmposant Reutilisable pour ne pas Retaper LE css !

<!-- V CO D UA C DA V UA V B E TI CO TE CE E U I P V DO O TI L VE CA B D T AI A PI D P NO MI CA U U TE NA LA D MI CA V TE DE V M U N CA DO S CA DE MI P U C M E R LA  PO CA IE CA MI TO PE DO I TE M O I CE MA ME DA I N EI O M O B S MA L NI PI PE DO O T VE DO LA DE NO AI T PI NA ! DE N!  T! ! M I !! I NA S . LI F C P a TI N I PI u S T a  r F VE LE I b d u P LA TI  t OE A d a I O e r T T R MA DO N r E a e I n LA n NO T d A d N P O i S t b S a s I v I P PI r i i L d e i u i I NA r t i r b A t U A P D  D TE e E S I u R d DE l g DE M D p l CA DA m i CA ! m -->

<!-- R SE D C VE C CI O T S NA R PO N VE CI T D PE A SI MO N P L P NA LE E NA O EI TO IE TE V E M TO OE DO DA I S MI U UI N B DA I DE T PO TO UI PI DA L E P N IE VE E NO TO TO DO D S VE U E N N LA TE DE ME TE TO I T D DE DA MO DA LE OE U IE LA MO U N VE UI N TO AI V DO LA E PE U NA R S IE O NO IE DE F N PE DE PI L  CA LA DE DO : V! CO NA NA D S TE E TI D! P E-->

<!-- ME S PO O MI IE D I O T OE F TI N O DO U R V CO E MA LE DO CA D A NO CI V E V DO CA V n F CO UI TO E T E MI AI I A d L CA F U i U D U I V IE n C TE U C TO LA N i NO N D u M DA l CI V T U s R TE p CE e P DA h A l r v T DE r M TO R g ME v v N m g P L E N s m O e N S v A v s c c R s s D f s F MA PI c V V c R U e C d R p V P b O C M v . l UI D o v t C O TI NA p OE A f u DE e O p -->
<script setup>
defineProps<{
  duration?: number
}>()
</script>

<template>
    <Transition name="fade" :style="{ '--duration': duration + 'ms' }">
        <slot />
    </Transition>
</template>

<style>
.fade-enter-active,
.fade-leave-active {
    transition: opacity var(--duration, 300ms) ease;
}

.fade-enter-from,
.fade-leave-to {
    opacity: 0;
}
</style>

<!-- U C N L NO MO TO PE IO CE DO DA MI DO R U NO CA LA L UI DA MI ME F AI PI M Z T O I LE PE E DO TO A S TA CO S T TI N NO IO TO D AI ! M O T E ! DA  DO  MO  L ME S O  T DA  S CI CE E D  CE : N N ! TO -->
<FadeTransition :duration="500">
  <div v-if="show">C EE NO N V EI MI L S CE N P DO O E SI U ! NA DE NO M TE IA E I  L T P</div>
</FadeTransition>

Les Grimoires De Tests


📘 Cette leçon fait partie du cours Les Animations & Transitions Vue.js sur la plateforme d’apprentissage RostoDev.

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur La CheatSheet des Mutations et Patrons d'Animations !. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.