最新回答 / wttfgg
视频用的是setTimeout只会执行一次,是因为最后他用animate(ball,distance,cb);递归调用导致的循环,在cb&&cb();后边加return false;就能停止循环了
2016-11-18
最新回答 / feiger
var ball1 = document.querySelector('.ball1'); var ball2 = document.querySelector('.ball2'); var ball3 = document.querySelector('.ball3'); function animate(ball,distence,cb){ setTimeout(function(){ alert(1) //为什么alert不执行? var marginLeft = parseInt(ba...
2016-11-04
最赞回答 / 淹死的鱼_
我的理解是:你会看到前面只是定义了一个函数_animate(),你要知道函数本身并不会自己就会执行。所以我们在外面多写一个_animate()是为了让函数第一次执行。至于这里为什么要定义一个_animate()函数。这里是对颜色块进行位移的功能封装成函数_animate(),而函数本身的功能其实是只能位移一个像素,要位移100个像素怎么办?很简单 迭代自己就行了,所以你会看到 _animate()函数里面自己调用自己。而要迭代自己,当然定义一个具名函数会更好处理啦。不然匿名函数 你能自己调用自己吗?
2016-10-23
最赞回答 / 慕斯卡2154061
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>ball animation</title> <script src="node_modules/bluebird/js/browser/bluebird.js"></script> <style> .ball{ wid...
2016-10-23
最新回答 / 慕前端3377544
我觉得应该是只要有数据传输,就会触发data事件,开始没有是文件比较小 ,小于一次传输的量(一次传输的大小约为64kb),所以只有一次,而加了暂停和重启就会 在重启时会再次触发 data 事件,所以就打印了两次
2016-10-21
最新回答 / 慕粉1459421150
我也不是很理解,难道第一个球跑到位置了,没有对其释放,然后又一次执行到这个任务了,就会发生两个任务在竞争,最后一直卡在这个timer里面没出来?
2016-10-17