首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Chart.js -如何设置动画速度?

Chart.js -如何设置动画速度?
EN

Stack Overflow用户
提问于 2013-11-07 13:44:12
回答 3查看 10.5K关注 0票数 6

我正在使用Chart.js (文档),但似乎没有设置动画速度的选项。

我似乎在源代码中找不到动画速度/时间变量。

我该怎么做呢?

(ps:我用的是甜甜圈图)

编辑:Changing animationSteps,动画完成后显示奇怪的手工艺品,有几个值(即: 30或75)。60岁很好。它不仅显示在图表的100+值中:

EN

回答 3

Stack Overflow用户

发布于 2015-09-05 04:53:55

我喜欢Chart.js,但为了清晰起见,这绝对是API的一部分,需要改进。

Chart.js使用window.requestAnimationFrame()方法进行动画,这是一种更现代和更有效的在浏览器中动画的方法,因为它只在每次屏幕刷新(即基于屏幕刷新率,通常是60 on )上重新绘制。这防止了许多不必要的计算框架,而这些帧永远不会实际呈现。

当每秒60帧时,一帧持续16-2/3毫秒(1000 60/ 60)。然而,Chart.js在四舍五入到17 to面前出现了。API允许您指定步骤全球范围内的数目,例如:

代码语言:javascript
运行
复制
Chart.defaults.global.animationSteps = 60;

只是为了甜甜圈图

代码语言:javascript
运行
复制
new Chart(ctx).Doughnut(data, {
  animationSteps: 60
});

将60步乘以17毫秒/帧,你的动画就会运行102毫秒,或者仅仅超过1秒。由于JavaScript程序员习惯于以毫秒为单位(而不是以60 of的帧为单位)进行转换,因此只需将17除以得到步骤数,例如:

代码语言:javascript
运行
复制
Chart.defaults.global.animationSteps = Math.round(5000 / 17); // results in 294 steps for a 5-second animation

希望这能有所帮助。但我不确定是什么导致了这些奇怪的文物。

票数 8
EN

Stack Overflow用户

发布于 2020-02-14 17:53:12

使用动画对象

代码语言:javascript
运行
复制
options: {
        animation: {
            duration: 2000,
        },

我在任何地方都没有看到这个文档,但是不必在全球范围内为每个图表设定速度是非常有帮助的。

我也在这里回答

票数 4
EN

Stack Overflow用户

发布于 2019-02-15 10:03:12

如果将来有人遇到这个问题(就像我一样),有一种新的方法来改变动画的持续时间。我想这在某种程度上是对Chart.js库的更新:

Chart.defaults.global.animation.duration = [ms];

因此,例如,如果您想要一个非常快的200 So动画,您可以:

Chart.defaults.global.animation.duration = 200;

希望这对某人有帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19837523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档