Vue使用过渡类名实现动画和自定义前缀

Vue使用过渡类名实现动画和自定义前缀

1.效果演示

image

2.相关代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../js/vue-2.4.0.js"></script>
  
    <!--2.自定义两种样式 控制transition实现内部动画-->
    <style>
        /*[这是一个时间点]v-enter是进入前元素的起始状态 还没开始进入*/
        /*[这也是一个时间点]v-leave-to是动画离开之后的终止状态,此时元素动画已经结束了*/
        .v-enter,
        .v-leave-to{
            opacity: 0;
            transform: translateX(80px);
        }

        /*v-enter-active [入场动画的时间段]*/
        /*v-leave-active [离场动画的时间段]*/
        .v-enter-active,
        .v-leave-active{

            transition: all 0.4s ease;
        }

    </style>


</head>
<body>
<div id="app">
    <input type="button" value="toggle" @click="flage=!flage">
    <!--//点击h3显示 再点击隐藏-->


    <!--1.使用transition 元素 吧需要被动画控制的元素包裹起来-->
    <transition>
        <h3 v-if="flage">这是一个h3</h3>
    </transition>
</div>

<script>

    var vm = new Vue({
        el: "#app",
        data: {
            flage: false
        },
        methods: {}
    })

</script>
</body>
</html>

自定义前缀.my-enter-active

1.效果演示:

image

2.相关代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../js/vue-2.4.0.js"></script>
    <script src="../js/vue-resource-1.3.4.js"></script>
    <link rel="stylesheet" href="../bootstrap-3.3.7-dist/css/bootstrap.min.css">


    <!--2.自定义两种样式 控制transition实现内部动画-->
    <style>
        /*[这是一个时间点]v-enter是进入前元素的起始状态 还没开始进入*/
        /*[这也是一个时间点]v-leave-to是动画离开之后的终止状态,此时元素动画已经结束了*/
        .v-enter,
        .v-leave-to{
            opacity: 0;
            transform: translateX(80px);
        }

        /*v-enter-active [入场动画的时间段]*/
        /*v-leave-active [离场动画的时间段]*/
        .v-enter-active,
        .v-leave-active{

            transition: all 0.4s ease;
        }

        /*=============*/

        .my-enter,
        .my-leave-to{
            opacity: 0;
            transform: translateY(70px);
        }

       
        .my-enter-active,
        .my-leave-active{

            transition: all 0.8s ease;
        }
    </style>


</head>
<body>
<div id="app">
    <input type="button" value="toggle" @click="flage=!flage">
    <!--//点击h3显示 再点击隐藏-->
    <!--1.使用transition 元素 吧需要被动画控制的元素包裹起来-->
    <transition>
        <h3 v-if="flage">这是一个H3</h3>
    </transition>


<hr>
    <input type="button" value="toggle2" @click="flage2=!flage2">
    <!--//点击h3显示 再点击隐藏-->
    <!--1.使用transition 元素 吧需要被动画控制的元素包裹起来-->
    <transition name="my">
        <h6 v-if="flage2">这是一个H6</h6>
    </transition>
</div>

<script>

    var vm = new Vue({
        el: "#app",
        data: {
            flage: false,
            flage2: false
        },
        methods: {}
    })

</script>
</body>
</html>
原文地址:https://www.cnblogs.com/charlypage/p/9867201.html