一、引入css3 中的keyframe bounce-in 看效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="../vue.js"></script>
<!-- 样式一定要写上,不然后没有动画效果 -->
<style >
@keyframes bounce-in{
0%{
transform: scale(0);
}
50%{
transform: scale(1.5);
}
100%{
transform: scale(1);
}
}
.fade-enter-active{
transform-origin: left center;
animation: bounce-in 1s;
}
.fade-leave-active{
transform-origin: left center;
animation: bounce-in 1s reverse;
}
</style>
</head>
<body>
<div id="app">
<!-- 实现动画需要加入 transition -->
<transition name="fade">
<!-- vue 的动画是通过 向某些标签上增加样式来实现的动画效果 -->
<div v-show="show">hello world</div>
</transition>
<!-- 实现点击change 隐藏和显示 hello world的功能 -->
<button @click="handleBtnClick">toggle</button>
</div>
<script type="text/javascript">
var vm = new Vue({
el: "#app",
data:{
show: true
},
methods:{
handleBtnClick:function() {
this.show = !this.show
}
}
})
</script>
</body>
</html>
看效果会先放大一下,再缩小
二、引入animate.css 样式库文件,使用已有的效果,就简单很多了。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue中的使用animate.css库</title>
<script src="../vue.js"></script>
<!-- 引入animate.css-->
<link rel="stylesheet" type="text/css" href="https://unpkg.com/animate.css@3.5.2/animate.min.css">
</head>
<body>
<div id="app">
<!-- 实现动画需要加入 transition -->
<!-- 自己定义active和leave样式,而不使用默认的样式 时需要指定-->
<transition
name="fade"
enter-active-class="animated swing"
leave-active-class="animated shake"
>
<!-- vue 的动画是通过 向某些标签上增加样式来实现的动画效果 -->
<div v-show="show">hello world</div>
</transition>
<!-- 实现点击change 隐藏和显示 hello world的功能 -->
<button @click="handleBtnClick">toggle</button>
</div>
<script type="text/javascript">
var vm = new Vue({
el: "#app",
data:{
show: true
},
methods:{
handleBtnClick:function() {
this.show = !this.show
}
}
})
</script>
</body>
</html>
在执行后,会有动画效果。
三、 增加appear 属性,在进入页面时就有动画效果。代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue中的使用过渡和动画</title>
<script src="../vue.js"></script>
<!-- 引入animate.css-->
<link rel="stylesheet" type="text/css" href="https://unpkg.com/animate.css@3.5.2/animate.min.css">
</head>
<body>
<div id="app">
<!-- 实现动画需要加入 transition -->
<!-- 自己定义active和leave样式,而不使用默认的样式 时需要指定-->
<!-- 增加了appear 属性,实现进入页面刷新时就显示动画效果 -->
<transition
name="fade"
appear
enter-active-class="animated swing"
leave-active-class="animated shake"
appear-active-class="animated swing"
>
<!-- vue 的动画是通过 向某些标签上增加样式来实现的动画效果 -->
<div v-show="show">hello world</div>
</transition>
<!-- 实现点击change 隐藏和显示 hello world的功能 -->
<button @click="handleBtnClick">toggle</button>
</div>
<script type="text/javascript">
var vm = new Vue({
el: "#app",
data:{
show: true
},
methods:{
handleBtnClick:function() {
this.show = !this.show
}
}
})
</script>
</body>
</html>
四、手工设置添加样式和animate.css样式动画一起作用,实现过渡效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue中的使用过渡和动画</title>
<script src="../vue.js"></script>
<!-- 引入animate.css-->
<link rel="stylesheet" type="text/css" href="https://unpkg.com/animate.css@3.5.2/animate.min.css">
<style>
.fade-enter,.fade-leave-to{
opacity: 0;
}
.fade-enter-active,
.fade-leave-active{
transition: opacity 3s;
}
</style>
</head>
<body>
<div id="app">
<!-- 实现动画需要加入 transition -->
<!-- 自己定义active和leave样式,而不使用默认的样式 时需要指定-->
<!-- 增加了appear 属性,实现进入页面刷新时就显示动画效果 -->
<transition
:duration = '{enter:5000,leave:10000}'
name="fade"
appear
enter-active-class="animated swing fade-enter-active"
leave-active-class="animated shake fade-leave-active"
appear-active-class="animated swing "
>
<!-- vue 的动画是通过 向某些标签上增加样式来实现的动画效果 -->
<div v-show="show">hello world</div>
</transition>
<!-- 实现点击change 隐藏和显示 hello world的功能 -->
<button @click="handleBtnClick">toggle</button>
</div>
<script type="text/javascript">
var vm = new Vue({
el: "#app",
data:{
show: true
},
methods:{
handleBtnClick:function() {
this.show = !this.show
}
}
})
</script>
</body>
</html>