Vuejs第七篇之Vuejs过渡动画案例全面解析
本篇资料是小编结合官方文档整理的一套更全面细致的说明,代码更多更全。 本篇资料来于官方文档:
下面看下过渡动画相关知识: ①过渡动画的定义; 简单来说,就是当模块消失、出现时,会以什么样的形式消失和出现; 如果要使用过渡动画,则在标签里加入属性: transition=”过渡动画名” 例如: 这里是mytran就是过渡动画名,他是一个类名,动画将基于这个名字而添加多个不同的扩展名(具体请参看下面) ②过渡动画绑定的事件: 【1】v-if 【2】v-show 【3】v-for(只在插入和删除时触发,可以自己写,或者使用vue-animated-list插件); 自己写例如: 动画写法略(参照下面) 【4】动态组件; 【5】在组件的根节点上,并且被Vue实例DOM方法触发(例如:vm.$appendTo(el))。大概就是说,把组件添加到某个根节点上去。
/这个定义动画情况,以及存在时的样式,这个样式会覆盖class里的样式/ / .mytran-enter 定义进入的开始状态 / 点击会随机让3个方块隐藏或者显示; ④JavaScript钩子: 【1】简单来说,这个不影响CSS动画(依然是那三个类的变化); 【2】这个主要用于抓取进入和离开各四个时刻,用于做某些事情; 【3】这八个时刻分别为: 进入:beforeEnter(进入之前),enter(进入动画刚开始),afterEnter(进入动画结束),enterCancelled(进入被中断); 退出:beforeLeave(退出之前),leave(退出动画刚开始),afterLeave(退出动画结束),leaveCancelled(退出被中断); 【4】对DOM的修改,部分情况下会恢复,例如在leave这一步修改dom的textContent属性,将在dom重新进入时恢复原状;但若在enter这一步修改,则不会恢复。 如代码: ⑤自定义过渡类名: 之所以要自定义过渡类名,是因为我们不可能要求每个css动画的样式,都是按照Vuejs标准的写法来写的(比如我们下载别人写的代码); 注:需要在声明相关的Vue实例之前进行定义。 首先,推荐一个Vuejs官方教程推荐的动画集合:(这个不是下载链接,需要打开它去找到下载链接才能下载)
下载后,导入这个css文件,然后开始自定义动画; 解释: 【1】进行动画的标签,需要有animated这个class; 【2】enterClass和leaveClass相当于之前的xxx-enter和xxx-leave; 【3】效果是从左边闪进来,从右边闪出去。 【4】需要在声明Vue实例前设置动画,否则会无效; ⑥使用animation动画 在Vuejs中,animation动画和transition动画是不同的。 简单来说,transition动画分为三步:常驻类,进入时触发的类,退出时触发的类;只有常驻类有transition动画属性,其他两步只有css状态; 而animation动画分为两步:进入时触发的类,退出时触发的类。当然,还有xxx-transition这个类存在于dom之中(这个类可以用于设置动画原点,或者干脆不设置这个类); 在animation动画中,进入和退出时的class类,都应该有动画效果,例如: 进入和退出时,执行的类名和transition一样,都是xxx-leave和xxx-enter这样格式的; 当然,也可以自定义类名。 示例代码:
.box {
width: 100px;
height: 100px;
border: 1px solid red;
display: inline-block;
}
@keyframes fat {
0% {
width: 100px
}
50% {
width: 200px
}
100% {
width: 100px
}
}
.fat-leave,.fat-enter {
animation: fat 1s both;
}
效果: 消失:先变宽,再恢复,然后消失; 进入:出现,变宽,再恢复,停留; 这里偷懒共用了同一个动画效果。 ⑦除此之外,还有 【1】显式声明动画类型(假如动画同时存在transition和animation,且分情况执行其中一种); 【2】过渡流程详解(触发动画时,js钩子执行与css执行的顺序); 【3】CSS动画(就是animation,像上面那样已经写过了,具体略); 【4】JavaScript过渡(不是js钩子,钩子是指在某个阶段会调用某个函数,但这个钩子跟动画无关),用JavaScript来控制动画,比如jquery的animate方法; 【5】v-for使用的渐进过渡; 由于暂时用不上,所以略掉,需要查看的请打开连接: 以上所述是小编给大家介绍的Vuejs第七篇之Vuejs过渡动画案例全面解析。编程之家 52php.cn 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |