Animación js y Velocity.js en Vue

Animación js y Velocity.js en Vue

Animación realizada por todos los js.
hecho, es la función de devolución de llamada, la configuro para que finalice después de 4000 milisegundos.

<!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">
        <transition 
            name="fade"
            @before-enter="handleBeforeEnter"
            @enter="handleEnter"
            @after-enter="handleAfterEnter"
        >
            <div v-show="show">hello world</div>
        </transition>
        <button @click="handleClick">toggle</button>
    </div>    

   <script>
       var vm = new Vue({
     
     
           el: '#root',
           data: {
     
     
               show: true
           },
           methods: {
     
     
               handleClick: function() {
     
     
                   this.show = !this.show
               },
               handleBeforeEnter: function(el) {
     
     
                   el.style.color = 'red'
               },
               handleEnter: function(el, done) {
     
     
                    setTimeout(() => {
     
     
                        el.style.color = 'green'
                    }, 2000)

                    setTimeout(() => {
     
     
                        done()
                    }, 4000)
               },
               handleAfterEnter: function(el) {
     
     
                   el.style.color = "#000"
               }
           }
       })
      
    </script>
</body>
</html>

El siguiente es el uso.

<!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>
    <script src="./velocity.js"></script>
</head>
<body>
    
    <div id="root">
        <transition 
            name="fade"
            @before-enter="handleBeforeEnter"
            @enter="handleEnter"
            @after-enter="handleAfterEnter"
        >
            <div v-show="show">hello world</div>
        </transition>
        <button @click="handleClick">toggle</button>
    </div>    

   <script>
       var vm = new Vue({
     
     
           el: '#root',
           data: {
     
     
               show: true
           },
           methods: {
     
     
               handleClick: function() {
     
     
                   this.show = !this.show
               },
               handleBeforeEnter: function(el) {
     
     
                   el.style.opacity = 0
               },
               handleEnter: function(el, done) {
     
     
                    Velocity(el, {
     
     
                        opacity: 1
                    }, {
     
     
                        duration: 1000,
                        complete: done
                    })
               },
               handleAfterEnter: function(el) {
     
     
                   console.log("动画结束")
               }
           }
       })
      
    </script>
</body>
</html>

Supongo que te gusta

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