主要就是想再 rAF 之后调用其它的函数,开始感觉很简单,但是一写发现不会。。 最刚开始的想法 callback 放在 rAF 的结束条件中发现会死循环。 我想着按照回调队列,能不能让一个函数始终在队列末尾,然后我现在解决办法是动画完了进入结束条件之后会改变一个状态变量然后 return,然后写一个判断函数放入 setTimeout(),判断函数如下:
engageToWhere(shelf,cb) { this.animate_state = "ANIMATE"; //... this._animation(targetY,diff>=0?0:1); //动画 function checkIfIdle() { if (self.animate_state==='ANIMATE') { setTimeout(checkIfIdle,0); } else { cb(); } } checkIfIdle(); } 虽然功能是实现了,但是觉得实现方法有待商榷,百度了很久也没有说关于这个的事情,只在 stackoverflow 看到有类似的问题,不知道在实际工作中应该怎么判断动画结束??
