Vue过渡与动画(一)

1.通过样式设置元素进入和离开过渡的效果

  1. transition组件(给一个元素添加过渡效果)
    • 通过样式设置元素进入和离开过渡的效果
.v-enter
.v-enter-active
.v-enter-to

.v-leave
.v-leave-active
.v-leave-to
<template>
    <div>
        <transition>
            <div v-if="flag" class="box"></div>
        </transition>
    </div>
</template>



<style lang="scss" scoped>
    //默认为v-开头
    .v-enter{opacity:0}
    .v-enter-to{opacity:1}
    .v-enter-active{transition:all 1s ease;}

    .v-leave{opacity:1}
    .v-leave-to{opacity:0}
    .v-leave-active{transition:all 1s ease;}
</style>
<template>
    <div>
        <transition name="fade">
            <div v-if="flag" class="box"></div>
        </transition>
    </div>
</template>



<style lang="scss" scoped>
    //以fade-开头
    .fade-enter{opacity:0}
    .fade-enter-to{opacity:1}
    .fade-enter-active{transition:all 1s ease;}

    .fade-leave{opacity:1}
    .fade-leave-to{opacity:0}
    .fade-leave-active{transition:all 1s ease;}
</style>
<template>
    <div>
        <transition name="slide">
            <div v-if="flag" class="box"></div>
        </transition>
    </div>
</template>



<style lang="scss" scoped>
    @keyframes slideIn {
        from {
            transform:translate3d(-100px,0,0)
        }

        to {
            transform:translate3d(0,0,0)
        }
    }
    @keyframes slideOut {
        from {
            transform:translate3d(0,0,0)
        }

        to {
            transform:translate3d(-100px,0,0)
        }
    }
    //以slide-开头
    .slide-enter{}
    .slide-enter-to{}
    .slide-enter-active{animation: slideIn 1s ease;}

    .slide-leave{}
    .slide-leave-to{}
    .slide-leave-active{animation: slideOut 1s ease;}
</style>
//使用animate.css这个css动画库
//首先安装一下:npm install animate.css



<transition enter-active-class="animated zoomIn" leave-active-class="animated zoomOut">
    <div></div>
</transition>



<style lang="scss" scoped>
    @import "~animate.css/animate.css";
</style>
//mode有“in-out”,"out-in"
<transition name="fade" mode="in-out">
    <div></div>
</transition>



<style lang="scss" scoped>
    //此处省略,看前面的
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值