Vue(day03) (3)

看下面的例子:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> div{ width: 100px; height: 100px; background-color: #999111; } div:hover{ width: 200px; height: 200px; } </style> </head> <body> <div></div> </body> </html>

当我们的鼠标悬浮在div元素上时,元素的样式发生了变化,但是这是瞬时变化的,在CSS3加入过渡和动画之前,元素属性(样式)变化都是没有时间轴的。

为了提高用户体验,CSS3实现了元素的过渡和动画效果。在上面的例子中,我们使用为元素加上过渡属性:transition。

div{ width: 100px; height: 100px; background-color: #999111; transition: all 1s ease; }

这样,我们就能看到元素在样式变化过程中的过渡效果。

关于transition的更多用法请自行查阅。

动画

对于过渡来说,我们需要事件触发才能看到效果,即存在状态变化,且过渡只在元素的两个状态之间变化。很多时候我们不需要事件触发也能实现状态变化,且能控制变化状态。这就是更复杂的动画功能,使用animation属性。

动画比过渡多了状态控制的过程,所以css动画需要结合keyframes(关键帧)来结合animation属性使用。

更多相关属性可自行查阅学习。

这里有一个css动画案例:行星运动

参考:

2、Vue中的过滤和动画

详情请参考官方文档:https://cn.vuejs.org/v2/guide/transitions.html

概述

在Vue中,可以在插入、更新或移除DOM时提供不同方式的过渡效果:

使用class类

配合使用第三方css动画插件,如Animated.css

使用js

配合使用第三方js动画插件,如Velocity.js

这些本质上都是CSS过渡和动画的封装实现,只是可以让我们使用更少的代码实现更多的功能(需求)

过渡的类

Vue把过渡分为两个阶段来实现过渡效果,分别是进入阶段、离开阶段。而这两个阶段又再细分为前和后两个阶段,具体如图所示:

Transition Diagram

下面是一个简单的例子:

由于Vue能在适当的时机添加类,所以不需要我们手动绑定类名,但是我们需要使用Vue提供的Transition组件来包裹需要过渡的元素。

<div> <button @click="show = !show">Toggle</button> <transition> <h3 v-show="show">This is a message.</h3> </transition> </div> .v-enter-active, .v-leave-active{ transition: all 0.8s ease; } .v-enter, .v-leave-to{ transform: translateX(10px); opacity: 0; } var app = new Vue({ el: '#app', data: { show: true, } });

transition的name属性可以自定义类名的前缀,如name="my-transition",那么类名就变成my-transition-enter等。

自定义过渡的类名:使用第三方css库

Vue提供了自定义过渡类名的特性:

enter-class

enter-active-class

enter-active-to(2.1.8+)

leave-class

leave-active-class

leave-to-class(2.1.8+)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssdjw.html