vue过渡类名动画

本文详细介绍了如何在Vue中使用过渡类名实现动画效果,包括使用transition元素包裹目标元素,以及自定义CSS样式控制动画的进入和离开状态。通过实例展示了如何控制元素的显示和隐藏,并配合动画效果。

2019年8月15日
一 、使用过渡类名实现动画

1.使用 transition 元素,把需要被动画控制的元素包裹起来

<div id="app">
        <transition>  <!-- transition元素包裹要控制的元素-->
        	<h3 v-if="flag">这是一个H3</h3>
   	 	</transition>
    </div>

2.需要自定义两组样式,来控制 transition 内部的元素实现动画

<style>
    .v-enter,    /* v-enter 这是一个时间点,是进入之前,元素的起始状态,此时还没有开始进入*/
    .v-leave-to{  /* v-leave-to 这是一个时间点,是动画离开之后,离开的终止状态,此时,元素动画已经结束 */
        opacity: 0;  /* 进入之前和离开之后透明度都为0*/
        transform: translatex(50%)
    }

    .v-enter-active,    /* v-enter-active 入场动画的时间段*/
    .v-leave-active{   /* v-leave-active 离场动画的时间段*/
        transition:all 1s ease;
    }
    </style>

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="js/vue.js"></script>
    <style>
    .v-enter,    /* v-enter 这是一个时间点,是进入之前,元素的起始状态,此时还没有开始进入*/
    .v-leave-to{ /* v-leave-to 这是一个时间点,是动画离开之后,离开的终止状态,此时,元素动画已经结束*/
        opacity: 0;
        transform: translatex(50%)
    }

    .v-enter-active,    /* v-enter-active 入场动画的时间段*/
    .v-leave-active{   /* v-leave-active 离场动画的时间段*/
        transition:all 1s ease;
    }

    .my-enter,    /* v-enter 这是一个时间点,是进入之前,元素的起始状态,此时还没有开始进入*/
    .my-leave-to{ /* v-leave-to 这是一个时间点,是动画离开之后,离开的终止状态,此时,元素动画已经结束*/
        opacity: 0;
        transform: translatey(500px)
    }

    .my-enter-active,    /* v-enter-active 入场动画的时间段*/
    .my-leave-active{   /* v-leave-active 离场动画的时间段*/
        transition:all 1s ease;
    }
    </style>
</head>
<body>
    <div id="app">
        <input type="button" value="按钮" @click="flag=!flag">
        <transition>
        <h3 v-if="flag">这是一个H3</h3>
    </transition>
    <hr>
    <input type="button" value="按钮2" @click="flag2=!flag2">
    <transition name="my">
        <h6 v-if="flag2">这是一个H6</h6>
    </transition>
    </div>
    <script>
    var vm=new Vue({
        el:'#app',
        data:{
            flag:false,
            flag2:false
        },
        methods:{}
    })
    </script>
</body>
</html>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值