详解vue过度效果与动画transition使用示例
作者:guoyp2126 发布时间:2023-07-02 16:45:03
先看一个示例
代码如下
<template>
<div align="center" style="margin-top: 100px;">
<button @click="show= !show" >测试</button>
<transition>
<div v-if="show">
<p>这是一段文字</p>
</div>
</transition>
</div>
</template>
<script>
export default {
name: 'transitionTest',
data () {
return {
show: true
}
}
}
</script>
<style scoped>
.v-enter-active, .v-leave-active {
transition: all .5s ;
}
.v-enter {
transform: translateY(50px);
opacity: 0;
}
.v-leave-active {
transform: translateY(50px);
opacity: .5;
}
</style>
包裹了一个div组件,点击按钮实现动画效果。一般搭配v-if、v-show、动态组件、组件根节点来使用。
transition钩子函数
transition提供六个钩子函数,提供给我们在不同时机编写相应的动画效果。以下是此六个钩子函数执行时机
1.v-enter:进入过渡开始状态。在元素 * 入之前生效,在元素 * 入之后的下一帧移除。
2.v-enter-active:进入过渡生效时的状态。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。
3.v-enter-to:进入过渡的结束状态。在元素 * 入之后下一帧生效 (与此同时 v-enter 被移除),在过渡/动画完成之后移除。
4.v-leave: 离开过渡的开始状态。在离开过渡被触发时立刻生效,下一帧被移除。
5.v-leave-active:离开过渡生效时的状态。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。
6.v-leave-to:离开过渡的结束状态。在离开过渡被触发之后下一帧生效 (与此同时 v-leave 被删除),在过渡/动画完成之后移除
自定义过渡类名
在页面中有多个地方需要进行过渡效果,如果使用vue提供的默认那6个钩子函数,那么所有要过渡地方的过渡效果都是一样的。如果需要在不同的场合定义不同的动画效果,就需要我们自己定义专属于各个过渡效果的类名。解决办法给transition标签添加name属性,在name属性中写入自己的类名前缀。例如,那么在使用类名的时候就是这样的:.my-trans-leave、.my-trans-enter-to。如:
<transition name="my-trans" mode="out-in">
<router-view v-if="!$route.meta.keepAlive"></router-view>
</transition>
style写法,my-trans是“.my-trans-enter-active”的前缀
<style>
.my-trans-enter-active,
.my-trans-leave-active {
transition: all .2s;
opacity: 1;
}
.my-trans-enter {
transition: all .2s;
opacity: 0;
}
.my-trans-leave-to {
transition: all .2s;
opacity: 0;
}
</style>
transition-group使用
对列表进行过渡渲染时,就必须使用transition-group元素包裹。点击列表中内容,按照以下动画移除,示例如下
<template>
<div class="main_css">
<transition-group name="slide">
<li v-for="(item,i) in list" :key="item.id" @click="del(i)">
{{ item.id }} --- {{ item.name }}
</li>
</transition-group>
</div>
</template>
<script>
export default {
name: 'transitionGroupTest',
data () {
return {
list: [{
id: 1,
name: '红烧鱼'
},
{
id: 2,
name: '炒土豆'
},
{
id: 3,
name: '烧茄子'
}
]
}
},
methods: {
del (i) {
this.list.splice(i, 1)
}
}
}
</script>
<style scoped>
.main_css {
margin-left: 50px;
margin-top: 50px;
}
.slide-enter-active {
transition: all .5s linear;
}
.slide-leave-active {
transition: all .1s linear;
}
.slide-enter {
transform: translateX(-100%);
opacity: 0;
}
.slide-leave-to {
transform: translateX(110%);
opacity: 0;
}
</style>
小结
过度与动画,使用transition标签完成,同时提供6个钩子函数。全局动画在app.vue中,在router-view组件中包裹transition,如:;给transition标签添加name属性定义过渡类名,实现局部变化。
以上就是详解vue过度与动画transition使用示例的详细内容,更多关于vue过度与动画transition的资料请关注脚本之家其它相关文章!
来源:https://blog.csdn.net/guoyp2126/article/details/119566990


猜你喜欢
- 我一直使用Microsoft的FrontPage 98来开发ASP/ADO之类的Internet数据库应用程序。现在我听说许多人都非常信奉采
- 如果说亲密性原则是对元素的归类组合,是将元素之间逻辑理解上的差异在视觉上表现出来,是属于信息分类的话,那么对齐原则即是在视觉上串起这些差异化
- python实现PSO算法优化二元函数,具体代码如下所示:import numpy as np import random import m
- QQ邮箱最新推出了一个授权码,需已验证的手机号向QQ邮箱服务器发送一条短信获得。该授权码用于第三方客户端登录,代替了第三方登录时使用的个人邮
- 看看效果图:效果图功能点:支持不限城市,不限地区(这个东西的实现..真心死磕了挺久) – 左右两边数据的同步地区一次性多选,若是选择了所有地
- 逢七拍腿游戏几个小朋友在一起玩逢七拍腿的游戏,从1开始数数,当数到7的倍数或者尾号是7时,拍一下腿。现在从1数到99,假设每个人都没有错,计
- 此文章主要向大家描述的是MySQL高级查询方法之记录查询的实际操作步骤,以及对其实际操作过程中要用到的代码的详细描述,以下就是文章的主要内容
- 本文实例讲述了Python爬虫实现抓取京东店铺信息及下载图片功能。分享给大家供大家参考,具体如下:这个是抓取信息的from bs4 impo
- 一、gfile模块是什么 gfile模块定义在tensorflow/python/platform/gfile.py,但其源代码实现主要位于
- 现在流行虚拟主机建站,我也有个网站,也算是个站长咯。当了近一年的站长,感到网站程序每次升级的时候颇为麻烦:先去官方看公告,然后下载升级包到本
- 要自动签到,最简单的是打开页面分析请求,然后我们用脚本实现请求的自动化。但是发现食行没有页面,只有 APP,这不是一个好消息,这意味着需要抓
- Properties类简要概括: Properties类是 键和值均为字符串的可以永久存储到文件中的key-value集合java.util
- 在JavaScript中,我们应该尽可能的用局部变量来代替全局变量,这句话所有人都知道,可是这句话是谁先说的?为什么要这么做?有什么根据么?
- 首先如果柱状图中有中文,比如X轴和Y轴标签需要写中文,解决中文无法识别和乱码的情况,加下面这行代码就可以解决了:plt.rcParams[&
- 1.点算子点算子是两个像素灰度值间的映射关系,属于像素的逐点运算,相邻像素不参与运算。点算子是最简单的图像处理手段,如:亮度调整、对比度调整
- Python3.5 版本引入了类型提示(Type Hints),它允许开发者在代码中显式地声明变量、函数、方法等的类型信息。这种类型声明不会
- 1.首先在index.html引入高德地图的秘钥。如图:注意:如果使用关键字搜索功能要加上 plugin=AMap.Autocomplete
- eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefine
- 本文实例讲述了php实现按照权重随机排序数据的方法。分享给大家供大家参考。具体实现方法如下:<?php /**
- 周末出去爬山,照了一大堆照片回来,照片同时存储为jpg和DNG格式,我用adobe bridge将dng格式的照片中要保留的筛选出来后,就不