本文只是结合一些代码和图片加强对Vue动画的理解,更多资料请戳这里

结合原生CSS实现动画

下面是一张图片,简单清晰明了是吧^-^

下面是一段代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
.show-enter-active,.show-leave-active{
transition: all 0.4s ease;
padding-left: 10px;
}
.show-enter,.show-leave-active{
padding-left: 100px;
}
</style>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="app">
<button @click="toggle">点击隐藏和显示</button>
<transition name="show">
<h3 v-show="isshow">{{message}}</h3>
</transition>
</div> <script>
new Vue({
el: '#app',
data: {
message:"hello Vue!",
isshow:false
},
methods:{
toggle:function(){
this.isshow = !this.isshow;
}
}
})
</script>
</body>
</html>

结合animate.css实现动画

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="http://apps.bdimg.com/libs/animate.css/3.1.0/animate.min.css" />
<style>
.show{
transition: all 0.4s ease;
}
</style>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="app">
<button @click="toggle">点击隐藏和显示</button>
<transition enter-active-class="fadeInRight"
leave-active-class="fadeOutRight">
<div v-show="isshow" class="animated" class="show">{{message}}</div>
</transition>
</div> <script>
new Vue({
el: '#app',
data: {
message:"hello Vue!",
isshow:false
},
methods:{
toggle:function(){
this.isshow = !this.isshow;
}
}
})
</script>
</body>
</html>

使用钩子函数实现动画效果

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
.show{
transition: all 0.4s ease;
}
</style>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body>
<div id="app">
<button @click="toggle">点击隐藏和显示</button>
<transition @before-enter="beforeEnter" @enter="enter" @after-enter="afterEnter">
<div v-show="isshow" class="show">{{message}}</div>
</transition>
</div> <script>
new Vue({
el: '#app',
data: {
message:"hello Vue!",
isshow:false
},
methods:{
toggle:function(){
this.isshow = !this.isshow;
},
beforeEnter:function(el){
//定义当前实现动画的初始位置
el.style.transform = "translate(100px,0)";
},
enter:function(el,done){
//设置一下刷新状态
el.offsetWidth;
//设置动画的结束位置
el.style.transform = "translate(0px,0)";
//手动调用一下done方法,由这个方法去决定动画是否结束了
//否则动画的消失会有延迟
done();
},
afterEnter:function(el){
//将动画的状态复原设置
this.isshow = !this.isshow;
}
}
})
</script>
</body>
</html>

最新文章

  1. 基于hk2框架的功能测试Mock注入
  2. win7 hosts文件更改后无效,不生效问题
  3. Python之路----------random模块
  4. ecgcd(解二元不定方程)
  5. spring AspectJ的Execution表达式
  6. invert
  7. Web交互设计优化的简易check list
  8. 读《JavaScript语言精粹》的一些感言
  9. MEF 编程指南(八):过滤目录
  10. QMessageBox 弹出框上的按钮设置为中文
  11. JDK 安装环境配置(ubuntu)
  12. d3力导向图聚焦
  13. Eclipse 安装 SVN 插件的两种方法
  14. day4-python基础-编码相关
  15. Openvswitch手册(9): Flow
  16. Js时间格式[转载]
  17. java 爬虫
  18. mouseover和mouseout事件的相关元素
  19. [javascript] 看知乎学习js事件触发过程
  20. python学习之老男孩python全栈第九期_day004知识点总结

热门文章

  1. Entity Framework添加记录时获取自增ID值
  2. HDU - 4866 主席树 二分
  3. es与hive整合
  4. 【JS】逻辑运算符 非! 与&amp;&amp; 或||
  5. Mac新手问题
  6. CF520B——Two Buttons——————【广搜或找规律】
  7. Firebird 列可空非空修改
  8. Config 代码片段
  9. Expression Blend实例中文教程(5) - 布局控件快速入门StackPanel,ScrollViewer和Border
  10. Python基础学习总结(二)