##发现当你使用js的定时器设置样式的时候,必须传入done方法,否则直接js执行完毕(可以不使用,也能达到目的,但是必须传)
另外:vue教程提到了有这么一段话:(当只用 JavaScript 过渡的时候,在 enter 和 leave 中必须使用 done 进行回调。否则,它们将被同步调用,过渡会立即完成。)
下面就是测试代码:(大家可以把done删掉,比较一下效果就明白了)
代码如下:直接粘贴可用(里面引用的的vue.js是我下载到本地的,你们自己网上找cdn引用地址把);
##注:里面声明了timer定时器属性,目的是为了防止快速点击button按钮定时器无法清除的问题,大家可以了解一下;

<!DOCTYPE html>
<html>
<head><title>vue过渡和动画</title><script src="vue-2.5.22.js"></script><link rel="stylesheet" type="text/css" href="animate-3.7.0.css"></link>
</head>
<style>.translate-enter,.translate-leave-to{transform:translateX(50px);}.translate-enter-active,.translate-leave-active{transition:transform 5s  ease;}
</style>
<body><div id="cartoon"><button type="button" v-on:click.prevent="show = !show">action</button><transition v-on:enter="enter" v-on:leave="leave"><div v-show="show">{{ msg }}</div></transition> </div><script>var cartoon = new Vue({el:'#cartoon',data:{show:true,msg:'disappear an show',timer:null},methods:{enter:function(el,done){clearInterval(this.timer);if(Number(el.style.marginLeft) == 0){var marginLeft= Number(el.style.marginLeft);}else{var marginLeft=parseInt(el.style.marginLeft);}this.timer = setInterval(function(){marginLeft-=5;el.style.marginLeft=marginLeft+'px';if(marginLeft < 0){el.style.marginLeft=0;clearInterval(this.timer);}},30); },leave:function(el,done){clearInterval(this.timer);if(Number(el.style.marginLeft) == 0){var marginLeft= Number(el.style.marginLeft);}else{var marginLeft=parseInt(el.style.marginLeft);} this.timer = setInterval(function(){marginLeft+=5;el.style.marginLeft=marginLeft+'px';if(marginLeft == 200){clearInterval(this.timer); }},30)}}})</script>
</body>
</html>

解决:vue 钩子函数 done()的理解相关推荐

  1. vue进入页面执行的钩子函数_深入理解Vue 的钩子函数

    前言 说到Vue的钩子函数,可能很多人只停留在一些很简单常用的钩子( created , mounted ),而且对于里面的区别,什么时候该用什么钩子,并没有仔细的去研究过,且Vue的生命周期在面试中 ...

  2. vue钩子函数beforeRouteEnter

    vue钩子函数beforeRouteEnter beforeRouteEnter 函数内部的 this 为 undefined,这是因为 beforeRouteEnter 是在页面创建前就执行的, 先 ...

  3. vue 钩子函数 使用async await

    <!DOCTYPE html> <html><head><meta charset="utf-8" /><title>v ...

  4. Vue钩子函数中的this为什么能指向Vue的实例而不是指向传入的参数options(Vue源码解读)

    起因 先看一段Vue的代码,在Vue的原型链上增加了一个setData方法,然后实例化Vue对象,传入一个Object类型的参数 Vue.prototype.setData = function (k ...

  5. vue 声明周期函数_Vue2.0 探索之路——生命周期和钩子函数的一些理解

    前言 在使用vue一个多礼拜后,感觉现在还停留在初级阶段,虽然知道怎么和后端做数据交互,但是对于mounted这个挂载还不是很清楚的.放大之,对vue的生命周期不甚了解.只知道简单的使用,而不知道为什 ...

  6. Vue生命周期和钩子函数的一些理解

    vue生命周期简介 咱们从上图可以很明显的看出现在vue2.0都包括了哪些生命周期的函数了. 生命周期探究 对于执行顺序和什么时候执行,看上面两个图基本有个了解了.下面我们将结合代码去看看钩子函数的执 ...

  7. vue钩子函数是什么,有什么没用

    文章目录 前言 目标 一.定义 二.vue加载过程 三.基本的使用 参考 前言 人见白头嗔,我见白头喜 目标 理解钩子函数,和基本应用 一.定义 每个 Vue 实例在被创建时都要经过一系列的初始化过程 ...

  8. Vue2.0 探索之路——生命周期和钩子函数的一些理解

    前言 在使用vue一个多礼拜后,感觉现在还停留在初级阶段,虽然知道怎么和后端做数据交互,但是对于mounted这个挂载还不是很清楚的.放大之,对vue的生命周期不甚了解.只知道简单的使用,而不知道为什 ...

  9. mounted钩子函数_Vue 探索之路——生命周期和钩子函数的一些理解

    对于执行顺序和什么时候,下面我们将结合代码去看看钩子函数的执 行 <!DOCTYPE html> <html> <head><title></ti ...

最新文章

  1. 硬盘显示容量和实际容量不符合_为啥我买的64G U盘实际只有57G?聊聊存储市场的“不足量”现象...
  2. SugarCRM ListView查询中加入默认条件
  3. RESTful之分页Pagination
  4. 刚子扯个蛋 说下增、删、改、查
  5. git 切换分支_简单git操作
  6. 看看这些大龄程序员都做了些什么
  7. 浅谈如何成为技术一号位
  8. jetson nano poe_工业POE交换机工作流程及使用注意事项介绍
  9. 用exists代替distinct
  10. JAVA设置流中当前位置_Java程序来标记此输入流中的当前位置
  11. PostgreSQL用户角色和权限管理
  12. ModelMap和ModelAndView的作用
  13. C# Win32API
  14. 为什么 Nginx 比 Apache 更牛叉?
  15. 计算机的运算符号,运算符号包括哪些
  16. 写给即将进入IT行业的应届生们——什么是IT行业
  17. 键盘里Insert作用
  18. 51制作贪吃蛇小游戏,附带Proteus仿真
  19. 手机开发|USB调试时未弹出授权对话框
  20. 弥散阴影html,超赞!一份简单易上手的青春弥散阴影修炼手册

热门文章

  1. 5个高质量PPT模板网站,赶紧马住。
  2. 当你开始建站的时候,首先你得先弄懂整个网站的建站流程
  3. HDUOJ 1078 FatMouse and Cheese
  4. 局部性原理——各类优化的基石
  5. 《魔鬼搭讪培训班》全部1~6集
  6. python零基础入门教程免费版_毫无基础的人如何入门 Python ?Python入门教程拿走不谢啦!...
  7. ng bootstrap css,Angular2学习笔记-ng bootstrap中motal组件使用
  8. mysql存储过程执行动态sql返回结果,mysql存储过程执行动态sql语句并返回值
  9. FPGA项目三:PWM呼吸灯
  10. gow上里还有gfind