动画数字的最佳方式(表现明智)是什么?

时间:2015-07-23 14:58:06

标签: angularjs animation angularjs-directive

在我的angular.js应用程序中,我使用此指令:

https://github.com/sparkalow/angular-count-to

在网络上运行良好。

当我为phonegap编译它时,它真的很慢。

但是我还有什么方法可以动画一个0到200之间的数字(例如),两个方面,而不会影响我的应用程序的性能?

1 个答案:

答案 0 :(得分:1)

该指令使用$timeout,这是在Angular中获取setTimeout功能的建议方法。它可能出于以下原因之一,尽管还有其他原因:

  1. 轻松注入模拟测试
  2. 假设每个步骤都应允许其他组件更新
  3. 这是“Angular Way”
  4. 我不相信#2实际上是一个大问题,因为它不会公开值或更新范围上的任何内容,并执行标准的HTML textContent操作。

    无论如何,关键是$timeout执行setTimeout以及$digest(允许Angular更新其他组件)。额外的摘要周期可能是缓慢的部分,每个Angular开发人员都应该阅读它们,因为它们是Angular设计的核心(提示:go read up on these now)。因此,使用原始库,将$timeout替换为setTimeout调用(以及可选地,在if (step >= steps)块中完成时手动摘要触发器)应该加快速度。

    请注意这些变化,但$timeout通常是正确的方法。