Heim  >  Artikel  >  Web-Frontend  >  Animationsfunktion in Vue3: Erzielen Sie coole Animationseffekte

Animationsfunktion in Vue3: Erzielen Sie coole Animationseffekte

WBOY
WBOYOriginal
2023-06-18 08:09:522263Durchsuche

Vue3 ist die neueste Vue-Version und wurde auch hinsichtlich der Animation erheblich verbessert und aktualisiert. Die Animationsfunktion in Vue3 wird mithilfe der Composition API- und Transition-Komponenten implementiert, sodass Entwickler einfacher verschiedene coole Animationseffekte erzielen können.

1. Composition API

Composition API ist eine neue Funktion, die in Vue3 eingeführt wurde und die Lesbarkeit, Wartbarkeit und Wiederverwendbarkeit von Komponenten optimieren kann. In der Composition API können wir ref und reactive verwenden, um reaktionsfähige Daten zu erstellen, watchEffect und berechnet verwenden, um Änderungen in Variablen und berechneten Eigenschaften zu überwachen, und onMounted und onUnmount verwenden, um Lebenszyklus-Hook-Funktionen usw. auszuführen.

In Bezug auf Animationen bietet die Composition API zwei Funktionen: useAnimation und useTransition.

  1. useAnimation

Mit der useAnimation-Funktion können wir eine Animationsfunktion innerhalb der Komponente erstellen, um eine komplexe Animationslogik zu verarbeiten. Die grundlegende Syntax lautet wie folgt:

import { useAnimation } from 'vue';

export default {
  setup() {
    const {animate, stop} = useAnimation();
    
    return {
      animate,
      stop
    }
  }
}

Mit der von useAnimation zurückgegebenen Funktion können wir eine Reihe von Animations-Keyframes erstellen und diese Animationen dann über die Animate-Funktion ausführen. Beispielsweise können wir eine Zoom-Animation wie folgt erstellen:

const { animate, stop } = useAnimation();
  
const scale = animate({
  0: {
    transform: 'scale(1)',
  },
  0.5: {
    transform: 'scale(1.2)',
  },
  1: {
    transform: 'scale(1)',
  },
}, {
  duration: 1000,
  easing: 'ease-in-out',
  iterations: Infinity,
  direction: 'alternate',
});

In diesem Beispiel verwenden wir die Animate-Funktion, um eine Zoom-Animation zu erstellen. Durch Angabe des Transformationsattributs des Keyframes kann das Element vergrößert und verkleinert werden. Im zweiten Parameter der Animationsfunktion können wir die Dauer, die Beschleunigungsfunktion, die Anzahl der Iterationen und die Wiedergaberichtung der Animation festlegen. Auf diese Weise können wir den Zoom-Animationseffekt in unserer Vue-Komponente implementieren.

  1. useTransition

Mit der useTransition-Funktion können wir einige Übergangsanimationsvorgänge ausführen, wenn ein Element eintritt oder verlässt. Die grundlegende Syntax lautet wie folgt:

import { useTransition } from 'vue';

export default {
  setup() {
    const { enter, leave } = useTransition();

    return {
      enter,
      leave
    }
  }
}

Mit den Enter- und Leave-Funktionen können wir verschiedene Animationsübergangseffekte für das Ein- und Ausstiegsverhalten von Elementen festlegen. Im folgenden Beispiel legen wir beispielsweise ein Ein- und Ausblendverhalten fest. Out-Effekt für ein Element:

<template>
  <div :class="{'opacity-0': !show}" v-enter="fadeIn" v-leave="fadeOut"></div>
</template>

<script>
import { useTransition } from 'vue';

export default {
  setup() {
    const { enter, leave } = useTransition();

    const fadeIn = enter((el, done) => {
      el.style.opacity = '0';
      setTimeout(() => {
        el.style.opacity = '1';
        done();
      }, 1000)
    });

    const fadeOut = leave((el, done) => {
      el.style.opacity = '1';
      setTimeout(() => {
        el.style.opacity = '0';
        done();
      }, 1000)
    });

    return {
      fadeIn,
      fadeOut,
      show: true
    }
  }
}
</script>

In diesem Beispiel führen wir die Funktionen fadeIn und fadeOut aus, wenn das Element eintritt und verlässt, und führen die Übergangseffekte für das Ein- und Ausblenden aus, indem wir verschiedene Rückruffunktionen übergeben. In der Rückruffunktion können wir die Funktion setTimeout verwenden, um die Ausführung der Animation zu verzögern, und mithilfe des Parameters done ermitteln, ob die Animation abgeschlossen ist, um den Übergangseffekt der Animation zu erzielen.

2. Übergangskomponente

Zusätzlich zu den von der Composition-API bereitgestellten Animationsfunktionen bietet Vue3 auch eine Übergangskomponente, die uns hilft, einige grundlegende Übergangsanimationseffekte zu erzielen, wie z. B. Ein- und Ausblenden, nach links schieben, nach oben schieben, drehen usw. Die grundlegende Syntax lautet wie folgt:

<transition name="fade">
  <div v-if="show">HELLO VUE3</div>
</transition>

In der Übergangskomponente können wir unterschiedliche Namenswerte angeben, um unterschiedliche Übergangsanimationseffekte zu verwenden, z. B. Ausblenden, Nach links schieben, Nach oben schieben, Drehen usw. In Vue3 werden viele Übergangseffekte standardmäßig bereitgestellt und können durch Festlegen des Namenswerts erreicht werden. Beispielsweise können wir durch das folgende Beispiel einen einfachen Ein- und Ausblend-Animationseffekt implementieren:

<template>
  <div>
    <button @click="show = !show">Show/Hide</button>
    <hr>
    <transition name="fade">
      <p v-if="show">Hello Vue3</p>
    </transition>
  </div>
</template>

<script>
export default {
  data() {
    return {
      show: true
    }
  }
}
</script>

<style>
.fade-enter-active,
.fade-leave-active {
  transition: opacity 0.5s ease-in-out;
}
.fade-enter,
.fade-leave-to {
  opacity: 0;
}
</style>

In diesem Beispiel erzielen wir einen Ein- und Ausblendeffekt, indem wir den Namen auf „Ausblenden“ setzen und ihn dynamisch ändern Der Wert von show steuert das Anzeigen und Ausblenden von Elementen. Im Animationseffekt können wir die Übergangseigenschaft von CSS3 verwenden, um den Animationseffekt des Übergangs festzulegen, die Animationsdauer und die Beschleunigungsfunktion über .fade-enter-active und .fade-leave-active festzulegen und die Animationsdauer festzulegen Die Beschleunigungsfunktion über .fade-enter und .fade -leave-to legt den Status fest, wenn die Animation beginnt und endet.

Zusammenfassung:

In Vue3 sind Animationsfunktionen und Übergangskomponenten zwei gängige Methoden, um Animationseffekte zu erzielen. Ersteres ist flexibler und freier und kann komplexere Animationslogik verarbeiten. Letzteres ist einfacher und benutzerfreundlicher und eignet sich für einige grundlegende Übergangsanimationseffekte. Unabhängig davon, welche Methode verwendet wird, können Sie CSS3-Eigenschaften und -Funktionen verwenden, um verschiedene coole Animationseffekte zu erzielen und unseren Anwendungen lebendige Farben hinzuzufügen.

Das obige ist der detaillierte Inhalt vonAnimationsfunktion in Vue3: Erzielen Sie coole Animationseffekte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn