Как сделать наростание скорости функции
как сделать постепенное наростание скорости, например финальное число 100.00, а наростание скорости(const oneStepTime) происходит после чисел 20.63, 38,22 и 80, спасибо!
const oneStepTime = 100;
function randomFloat(maxNumber, maxStep, minStep) {
let acc = 1.00;
const interval = setInterval(() => {
let step = 0.01;
if (maxNumber - acc > step) {
acc += step;
} else {
acc = maxNumber;
clearInterval(interval);
setTimeout(() => {
disp.innerText = "";
run();
}, 1000)
}
disp.innerText = acc.toFixed(2);
}, oneStepTime);
}
function Random() {
const min = 1;
const max = 100;
return Math.round((Math.random() * (max - min) + min) * 100) / 100;
}
Ответы (1 шт):
Автор решения: Stanislav Volodarskiy
→ Ссылка
Попробуйте время преобразовывать нелинейной функцией. Например за пять секунд от нуля до сотни:
const counter = document.getElementById('counter').firstChild;
const countUp = () => {
const y = t => 4 * t * t;
const target = 5;
const start = performance.now();
const frame = () => {
const dt = Math.min(target, (performance.now() - start) / 1000);
counter.nodeValue = y(dt).toFixed(2);
if (dt < target) {
requestAnimationFrame(frame);
} else {
setTimeout(countUp, 1000);
}
};
requestAnimationFrame(frame);
};
countUp();
<span id="counter">0</span>