首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在几秒钟内将数字从00.000000增加到48.853373,乘以0.00001

如何在几秒钟内将数字从00.000000增加到48.853373,乘以0.00001
EN

Stack Overflow用户
提问于 2019-02-19 14:21:08
回答 2查看 114关注 0票数 0

我使用地图坐标作为网站标志的一部分。(2.378628,48.853373)

我想要做的是,从0.000000中数出这两个数字,使它们在同一时间内达到给定的点数(3-5秒),增加0.000001。那件事怎么可能?这使我的电脑崩溃,setInterval每毫秒做一件事,这是不够的。

代码语言:javascript
复制
while (i < 48.853373) {
  i = i + 0.000001;
  $('.js-center-lat').text(i);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-19 14:26:12

听起来,您想要将浮点数“动画化”,以计数到定义的值。你有没有考虑过第三方库,比如CountUp.js

CountUp.js是一个无依赖的轻量级JavaScript“类”,可以用来快速创建动画,以更有趣的方式显示数字数据。

关于如何使用它的快速示例:

代码语言:javascript
复制
var options = {
  useEasing: true, 
  useGrouping: true, 
  separator: '', 
  decimal: '.', 
};

var demo = new CountUp('myTargetElement', 0, 2.415543, 6, 2.5, options);

if (!demo.error) {
  demo.start();
} else {
  console.error(demo.error);
}

希望这能有所帮助!

票数 4
EN

Stack Overflow用户

发布于 2019-02-19 14:29:36

当您启动动画(startTime)时,您需要花费时间,并且您可以确定动画应该持续多长时间(duration)。

对于每个动画步骤,您可以计算动画的百分比。

用这个百分比,你可以数出多个值。

代码语言:javascript
复制
let startTime = Date.now();
let duration = 3000;

function updateText() {
  let percent = Math.min(1, (Date.now() - startTime) / duration);
  // Math min ensures that percent does not become larger then 1

  $('.val1').text(50 * percent); // 0 - 50
  $('.val2').text(33 * percent); // 0 - 33
  $('.val3').text(13 + 10 * percent); // 13 - 23

  if (percent <= 1) {
    requestAnimationFrame(updateText)
  }
}

updateText();
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="val1">
</div>
<div class="val2">
</div>
<div class="val3">
</div>

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

https://stackoverflow.com/questions/54768427

复制
相关文章

相似问题

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