Heim > Web-Frontend > View.js > So wechseln Sie die Animation von Elementen und Komponenten in Vue3

So wechseln Sie die Animation von Elementen und Komponenten in Vue3

PHPz
Freigeben: 2023-05-14 14:16:11
nach vorne
908 Leute haben es durchsucht

    Beispielanalyse

    Animationswechsel zwischen Elementen

    Animationswechsel zwischen Elementen bezieht sich auf den Wechsel zwischen zwei dom-Elementen, z. B. wenn ein divverschwindet und ein anderes verschwindet div wird angezeigt, was dem Ausblendeffekt entspricht, und die Anzeige entspricht dem Einblendeffekt. In diesem Beispiel verwenden wir zwei div, einer zeigt Hallo Welt, der andere zeigt bye world an und steuert dann die Umschaltung der Animation. Der Code lautet wie folgt: dom元素之间的切换,比如一个div消失,另一个div显示,消失对应着渐出的效果,显示对应渐入的效果,本例我们以两个div,一个显示hello world,另一个显示bye world,然后使用一个按钮控制动画的切换,代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>元素切换动画的实现</title>
        <style>
            .v-enter-from{
                opacity: 0;
            }
            .v-enter-active{
                transition: opacity 1s ease-in;
            }
            .v-enter-to{
                opacity: 1;
            } 
            .v-leave-from{
                opacity: 1;
            }
            .v-leave-active{
                transition:opacity 1s ease-in
            }
            .v-leave-to{
                opacity: 0;
            }
        </style>
        <script src="https://unpkg.com/vue@next"></script>
    </head>
    <body>
        <div id="root"></div>
    </body>
    <script>
     const app = Vue.createApp({
            data() {
                return {
                   show:false
                }
            },
            methods: {
                handleClick(){
                  this.show = !this.show;
                }
            },
            template: 
            `
            <transition mode="out-in" appear>
                <div v-if="show">hello world </div>
                <div v-else="show" >bye world </div>
            </transition>
            <button @click="handleClick">switch</button>
            `
        });
        const vm = app.mount(&#39;#root&#39;);
    </script>
    Nach dem Login kopieren

    如上面的代码所示,我们使用CSS定义好渐入和渐出的效果,然后将我们要做动画的div放到<transition></transition>标签之间,使用一个Boolean变量show控制元素的显示和隐藏,当我们点击按钮的时候,执行handleClick函数,将show变量取反,达到切换的效果。 在代码中我们还看到了在transition标签上使用了一个mode="out-in",这个mode的取值其实还有一个是mode="in-out",两者的区别如下:

    mode="out-in": 表示两个元素切换的时候,当前的元素先消失,待显示的元素再显示 mode="in-out"

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>组件间切换动画的实现</title>
        <style>
            .v-enter-from{
                opacity: 0;
            }
            .v-enter-active{
                transition: opacity 1s ease-in;
            }
            .v-enter-to{
                opacity: 1;
            } 
            .v-leave-from{
                opacity: 1;
            }
            .v-leave-active{
                transition:opacity 1s ease-in
            }
            .v-leave-to{
                opacity: 0;
            }
        </style>
        <script src="https://unpkg.com/vue@next"></script>
    </head>
    <body>
        <div id="root"></div>
    </body>
    <script>
        // 多个单组件之间的动画
        const ComponentA = {
            template:&#39;<div>hello world</div>&#39;
        }
        const ComponentB = {
            template:&#39;<div>bye world</div>&#39;
        }
     const app = Vue.createApp({
            data() {
                return {
                   component:&#39;component-a&#39;
                }
            },
            methods: {
                handleClick(){
                   if(this.component === &#39;component-a&#39;){
                    this.component = &#39;component-b&#39;;
                   }else{
                    this.component = &#39;component-a&#39;;
                   }
                }
            },
            components:{
                &#39;component-a&#39;:ComponentA,
                &#39;component-b&#39;:ComponentB
            },
            // 动态组件的方式
            template: 
            `
            <transition mode="out-in" appear>
                <component :is="component" />
            </transition>
            <button @click="handleClick">switch</button>
            `
        });
        const vm = app.mount(&#39;#root&#39;);
    </script>
    Nach dem Login kopieren
    Wie im obigen Code gezeigt, Wir verwenden CSS, um den Farbverlauf und den Ausblendeffekt zu definieren, und platzieren dann das div, das wir animieren möchten, zwischen den <transition></transition>-Tags, indem wir a verwenden Boolean Die Codevariable <code>show steuert das Anzeigen und Ausblenden von Elementen. Wenn wir auf die Schaltfläche klicken, wird die Funktion handleClick ausgeführt und die Funktion show Die Variable wird invertiert, um einen Schalteffekt zu erzielen. Im Code sehen wir auch, dass ein mode="out-in" für das Übergangs-Tag verwendet wird. Der Wert dieses mode ist tatsächlich mode =". in-out", der Unterschied zwischen den beiden ist wie folgt:

    mode="out-in": bedeutet, dass beim Wechseln zweier Elemente das aktuelle Element zuerst verschwindet und verschwindet Das anzuzeigende Element wird dann angezeigt mode="in-out": Dies bedeutet, dass beim Wechseln zweier Elemente das anzuzeigende Element zuerst angezeigt wird und das aktuelle Element verschwindet Probieren Sie beide Attribute aus und sehen Sie sich den Effekt an. Im Code sehen wir, dass ein Attribut angezeigt wird. Dieses Attribut bedeutet, dass beim Öffnen der Schnittstelle im Browser keine Animation angezeigt wird Animation beim Laden der Seite

    Animationsumschaltung zwischen Komponenten

    In Vue verwenden wir mehr Komponenten. Tatsächlich können wir das obige Beispiel auch modifizieren und in Form dynamischer Komponenten implementieren . Der Animationseffekt des Wechsels zwischen den oben genannten Elementen lautet wie folgt:

    rrreee

    Das obige ist der detaillierte Inhalt vonSo wechseln Sie die Animation von Elementen und Komponenten in Vue3. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Verwandte Etiketten:
    Quelle:yisu.com
    Erklärung dieser Website
    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
    Beliebte Tutorials
    Mehr>
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage