Paquete de animación en Vue (5-7)

Paquete de animación en Vue

Este es un método de envasado más recomendado. Porque encapsula todas las animaciones de un componente.

<!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>Document</title>
    <script src='./vue.js'></script>
</head>
<body>
    
    <div id="root">
        <fade :show="show">
            <div>hello world</div>
        </fade>    

        <fade :show="show">
            <h1>hello world</h1>
        </fade>    
        <button @click="handleBtnClick">toggle</button>
    </div>    

   <script>

       Vue.component('fade', {
     
     
         props: ['show'],  
         template: `
            <transition @before-enter="handleBeforeEnter"
                @enter="handleEnter">
                <slot v-if="show"></slot>
            </transition>
         `,
        methods: {
     
     
            handleBeforeEnter: function(el) {
     
     
                el.style.color = 'red'
            },
            handleEnter: function(el, done) {
     
     
                setTimeout(() => {
     
     
                    el.style.color = 'green'
                    done()
                }, 2000)
            }
        }
       })

       var vm = new Vue({
     
     
           el: '#root',
           data: {
     
     
               show: false
           },
           methods: {
     
     
               handleBtnClick: function() {
     
     
                   this.show = !this.show
               }
           }
       })
      
    </script>
</body>
</html>

Supongo que te gusta

Origin blog.csdn.net/weixin_45647118/article/details/114053667
Recomendado
Clasificación