javascript - 添加数字格式作为动画数字中的货币(10,000)

标签 javascript jquery html

金额从起始值到最终值都有动画,但我想以格式化方式将此金额数字动画化。假设数字从 1000 开始动画到 10000,那么它的格式应该为 10,000

function myCalculator() {
  $(".container2").show();
  var start = 1000;
  var end = 10000;
  var duration = 2000;
  animateValue("value", start, end, duration).toLocaleString();
}

function animateValue(id, start, end, duration) {
  var range = end - start;
  var current = start;
  var increment = end > start ? 10 : -10;
  var stepTime = Math.abs(Math.floor(duration / range));
  var obj = document.getElementById(id);
  var timer = setInterval(function() {
    current += increment;
    obj.innerHTML = current;
    if (current == end) {
      clearInterval(timer);
    }
  }, stepTime);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<button type="button" onclick="myCalculator();">Click Here to See Animation</button>

<div class="container2" style="display:none;">
  Animating Amount $ <span id="value"></span>
</div>

我尝试了很多,但没有找到任何运气。谁能帮我解决它? 提前致谢。

最佳答案

您在错误的位置调用了toLocaleString()。您需要在 animateValue 函数中的 current 变量上调用它,而不是在该函数的(不存在的)结果上调用它。试试这个:

function myCalculator() {
  $(".container2").show();
  var start = 1000;
  var end = 10000;
  var duration = 2000;
  animateValue("value", start, end, duration); // remove .toLocaleString()
}

function animateValue(id, start, end, duration) {
  var range = end - start;
  var current = start;
  var increment = end > start ? 10 : -10;
  var stepTime = Math.abs(Math.floor(duration / range));
  var obj = document.getElementById(id);
  var timer = setInterval(function() {
    current += increment;
    obj.innerHTML = current.toLocaleString(); // add .toLocaleString() here
    if (current == end) {
      clearInterval(timer);
    }
  }, stepTime);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<button type="button" onclick="myCalculator();">Click Here to See Animation</button>

<div class="container2" style="display:none;">
  Animating Amount $ <span id="value"></span>
</div>

关于javascript - 添加数字格式作为动画数字中的货币(10,000),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48284672/

相关文章:

Javascript 将文本添加到文档头部

javascript - SVG : how to properly handle mouseover and mouseout event?

php - HTML 页面上的 preg_replace 给出 net::ERR_INVALID_CHUNKED_ENCODING

javascript - 删除页码、标题和 url - Internet Explorer 上的 window.print()

Javascript 代码 128 字符串生成器 - Ascii 值 > 127 问题

javascript - Spring 表单标签复选框(表单 :checkbox) hidden field not sent to server?

javascript - 如何访问Iframe父窗口的方法[Chrome浏览器]

javascript - 为什么文本在我的样式中闪烁?

javascript - 标题必须有内容,并且内容必须可由屏幕阅读器访问

jquery - 如何抑制特定 ajax 调用的全局 ajaxStart/ajaxStop