本文介绍: flag“>显示或隐藏.box{}// 进入的过渡动画// 开始进入height: 0;width: 0;}// 进入过程}// 进入结束}// 离开的过渡动画// 开始离开}// 离开过程}// 离开结束height: 0;width: 0;}flag“>显示或隐藏// 对应的css.e-from{height: 0;width: 0;
Vue 提供了 transition 的封装组件,可以给元素和组件添加进入/离开过渡动画:一下情景可以使用
对transition
组件的name
属性自定义,并在css中写入对应的样式
<button @click="flag = !flag">显示或隐藏</button>
<transition name="box">
<div class="box" v-if="flag"></div>
</transition>
.box{
width: 100px;
height: 100px;
background-color: blue;
}
// 进入的过渡动画
// 开始进入
.box-enter-from{
height: 0;
width: 0;
}
// 进入过程
.box-enter-active{
transition: all 2s ease;
}
// 进入结束
.box-enter-to{
height: 100px;
width: 100px;
}
// 离开的过渡动画
// 开始离开
.box-leave-from{
height: 100px;
width: 100px;
transform: rotate(360deg);
}
// 离开过程
.box-leave-active{
transition: all 2s ease;
}
// 离开结束
.box-leave-to{
height: 0;
width: 0;
}
2. 自定义过渡 class 类名
enter-from-class
enter-active-class
enter-to-class
leave-from-class
leave-active-class
leave-to-class
<button @click="flag = !flag">显示或隐藏</button>
<transition
enter-from-class="e-from"
enter-active-class="e-active"
enter-to-class="e-to"
name="fade">
<div class="box" v-if="flag"></div>
</transition>
// 对应的css
.e-from{
height: 0;
width: 0;
}
.e-active{
transition: all 2s ease;
}
.e-to{
height: 100px;
width: 100px;
}
通过自定义class可以 结合css动画库animate css使用
安装库 npm install animate.css -s
文档 Animate.css | A cross-browser library of CSS animations.
3.transition 8个生命周期
<transition
@before-enter="EnterFrom"
@enter="EnterActive"
@after-enter="EnterTo"
@enter-cancelled="EnterCancel"
@before-leave="LeaveFrom"
@leave="LeaveActive"
@after-leave="LeaveTo"
@leave-cancelled="LeaveCancel"
name="fade">
<div class="shop" v-if="flag"></div>
</transition>
const EnterFrom = (el:Element)=>{
console.log('进入之前');
}
const EnterActive = (el:Element, done:Function)=>{
console.log('进入的过渡曲线');
setTimeout(()=>{
done()
},3000)
}
const EnterTo = (el:Element)=>{
console.log('过渡完成');
}
const EnterCancel = (el:Element)=>{
console.log('执行过渡效果被打断');
}
const LeaveFrom = ()=>{
console.log('离开之前');
}
const LeaveActive = (el:Element, done:Function)=>{
console.log('离开的过渡曲线');
setTimeout(()=>{
done()
},3000)
}
const LeaveTo = (el:Element)=>{
console.log('离开过渡完成');
}
const LeaveCancel = (el:Element)=>{
console.log('离开过渡效果被打断');
}
4. appear
<transition
appear
appear-active-class=""
appear-from-class=""
appear-to-class=""
name="fade">
<div class="shop" v-if="flag"></div>
</transition>
原文地址:https://blog.csdn.net/weixin_70617457/article/details/128390052
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_7797.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。