Vue动画原理

作者: 李华炎 | 来源:发表于2019-06-30 17:23 被阅读0次

    一、实现过渡动画效果的原理

    1. 隐藏时,给标签添加的类名,通过第一帧到第二帧opacity的变化实现动画


      ![enter.png](https://img.haomeiwen.com/i7113601/84d053621884d058.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    1. 显示时,给标签添加的类名,通过第一帧到第二帧opacity的变化实现动画


      enter.png

    二、如何使用

    首先用<transition> 标签包裹需要实现动画效果的标签,指定<transition> 标签的name 属性,这个属性是用来指定类名的前缀的,如果不指定这个属性,类名会以v- 开始,指定该属性后,类名会以指定的属性值开始。

    没有指定name属性的类名,如:v-enter

    指定name属性的类名,如:fade-enter

    <div id="app">
      <transition name="fade">
        <div v-if="show">hello world</div>
      </transition>
      <button @click="handleClick()">点击我</button>
    </div>
    

    三、案例

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>动画</title>
            <style type="text/css">
                /*类名会存在于整个动画过程,直至动画结束后移除*/
                .fade-enter-active,
                .fade-leave-active{
                    transition: opacity 2s; 
                }
                
                /*从第一帧到第二帧的过程中,opacity从0变为1,transition监听到opacity的变化,会根据指定的时间内完成变化 */
                .fade-enter {
                    opacity: 0; /*当第二帧时,会将fade-enter这个类移除,*/
                }
                
                /*从第一帧到第二帧的过程中,opacity从1变为0*/
                .fade-leave-to {
                    opacity: 0;
                }
            </style>
        </head>
        <body>
            <div id="app">
                <transition name="fade">
                    <div v-if="show">hello world</div>
                </transition>
                <button @click="handleClick()">点击我</button>
            </div>
        </body>
        <script src="../js/vue.js" type="text/javascript"></script>
        <script type="text/javascript">
            new Vue({
                el: '#app',
                data: {
                    show: true
                },
                methods: {
                    handleClick: function(){
                        this.show = this.show === true ? false : true;
                    }
                }
            })
        </script>
    </html>
    

    相关文章

      网友评论

        本文标题:Vue动画原理

        本文链接:https://www.haomeiwen.com/subject/uambcctx.html