vue过渡动画之——过渡类名

博客介绍了过渡类名的使用,进入过渡开始于v-enter,过程为v-enter-active,结束于v-enter-to或.el样式;离开过渡开始于v-leave或.el样式,过程为v-leave-active,结束于v-leave-to。还指出v-enter-to和.el优先选v-enter-to,最终是.el样式,v-leave和.el优先选.el,最终消失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

过渡类名的使用

<transition name="fade">
	<div class="el"></div>
</transiton>
v-enter:进入时,开始动的状态(开始变化的一个状态,当变化开始时移除)。

v-enter-active:变化的一个过程(从变化开始到变化结束)。这个类可以被用来定义进入过渡的过程时间,延迟和曲线函数。

v-enter-to: 变化的一个目标状态,从开始变化时生效,即v-enter移除的同时生效。到变化结束时移除,即和v-enter-active一起消失。(若没有v-enter-to样式,则默认为元素定义的样式即.el的样式)(紧接着是的元素呈现出最后的样式即——el的定义样式)

进入时的过渡为:开始于v-enter 过程 为v-enter-active 结束于v-enter-to(当没有v-enter-to时为.el最终定义的样式)


v-leave: 定义离开过渡的开始状态。即转头离开时的一个状态,转头时移除。

v-leave-active:转头时立即生效,转头离开动作完成后移除。这个类可以被用来定义离开过渡的过程时间,延迟和曲线函数。

v-leave-to: 离开动作的一个目标状态,转头时生效同时v-leave移除,转头离开动作完成时移除同时v-leave-active移除。

离开时的过渡:开始于v-leave(当有默认的.el样式时,优先选用.el样式),过程为:v-leave-active 离开结束时的状态为v-leave-to

小结:v-enter-to和.el优先选用v-enter-to样式,但最终是.el样式。
v-leave和.el优先选用.el样式,但最终是消失。

### Vue 内置过渡动画实现样式效果 Vue 的 `<transition>` 组件用于包裹动态组件或元素,当状态变化时触发 CSS 转换或动画。此功能不仅限于简单的淡入淡出效果;实际上,能够创建多种视觉反馈机制。 #### 基础用法 最基础的方式是通过指定 `name` 属性来自定义类名前缀[^1]: ```html <transition name="fade"> <p v-if="show">hello</p> </transition> ``` 对于上述代码片段中的 `.fade-enter-active`, `.fade-leave-active` 类将被应用于进入和离开过程期间的元素上。默认情况下,如果没有提供特定名称,则使用 "v-" 开头作为默认命名空间[^5]。 #### 定义 CSS 过渡/动画 为了使过渡生效,需在样式表内声明相应的钩子函数对应的 CSS 类。以下是基于时间轴的关键帧控制样式的例子[^4]: ```css /* 渐显 */ .fade-enter-active { transition: opacity 0.5s; } .fade-enter, .fade-leave-to /* .fade-leave-active in <2.1.8 */ { opacity: 0; } /* 上下弹跳 */ .bounce-enter-active { animation: bounceInUp 1s ease-in; } .bounce-leave-active { animation: bounceInUp 1s ease-in reverse; } @keyframes bounceInUp { from, 60%, 75%, 90%, to { animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); } 0% { opacity: 0; transform: translate3d(0, 3000px, 0); } 60% { opacity: 1; transform: translate3d(0, -20px, 0); } 75% { transform: translate3d(0, 10px, 0); } 90% { transform: translate3d(0, -5px, 0); } to { transform: none; } } ``` 以上展示了两种不同类型的过渡——渐变透明度以及带有弹性效果的位置移动。前者适用于希望对象平滑显现的情况,而后者则更适合作为吸引注意力的动作特效。 #### 使用场景实例 考虑一个按钮点击切换显示隐藏文本框的需求,可以通过如下方式轻松完成带过渡效果的操作[^3]: ```html <button @click="toggle">{{ isShow ? 'Hide' : 'Show' }}</button> <!-- 添加 transition 包裹 --> <transition name="slide-fade"> <!-- 条件渲染的内容 --> <div v-show="isShow" class="message-box"> This box will slide and fade into view. </div> </transition> ``` 结合 JavaScript 控制变量 `isShow` 变化即可让消息盒子按照预设方式进行展示与消失处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值