好的,关于我的上一个问题。我目前有这个代码:
var secs = 100;
setInterval(function() {
var $badge = $('#nhb_01');
$badge.text((parseFloat($badge.text())+0.01).toFixed(2));
}, secs);
基本上,我需要计数器每分钟增加一定的值。
所以我需要的一个值是0.17。
所以我需要计数器每分钟增加0.17。因此,2分钟后,计数器将读取0.34,依此类推。
我如何解决这个问题,因为计算出它应该花费多少毫秒才会变得如此痛苦和混乱!
感谢您的帮助!
答案 0 :(得分:1)
而不是每次从元素中获取文本而不是更好(更高效)来保持JS计数器增加:
var secs = 1000 * 60;
var count = 0;
setInterval(function() {
var $badge = $('#nhb_01');
count += 0.17;
$badge.text(count.toFixed(2));
}, secs);
DEMO - 运行速度比平常快一点,这样你就能看到效果。
答案 1 :(得分:0)
var secs = 60 * 1000;
setInterval(function() {
var $badge = $('#nhb_01');
$badge.text((parseFloat($badge.text())+0.17).toFixed(2));
}, secs);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="nhb_01">0</div>
&#13;
答案 2 :(得分:0)
<强> HTML 强>
<h2>Increment Value over a Duration with a given framerate</h2>
Value: <span id="value">0</span>
<强> JS 强>
var valueElement = document.getElementById('value');
var start = 0;
var end = 100;
var duration = 10000; // In milliseconds (divide by 1000 to get seconds).
var framerate = 50; // In milliseconds (divide by 1000 to get seconds).
var toAdd = ( ( end - start ) * framerate ) / duration;
var interval = setInterval(function() {
var currentValue = parseFloat(valueElement.innerHTML);
if (currentValue >= end) {
clearInterval(interval);
return;
}
valueElement.innerHTML = (!isNaN(currentValue) == true ? currentValue + toAdd : toAdd);
}, framerate);
<强>的jsfiddle 强>
https://jsfiddle.net/L3Ln1f7b/
从这个基地,你可以做很多事情。调整帧率有助于解决性能问题,持续时间可以加快速度或降低速度