Как исправить баг с наложением чисел?
Как исправить баг с наложением чисел?
Вот мой код:
const oneStepTime = 10;
const disp = document.getElementById("num1avi");
const timerDisp = document.getElementById("timer");
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);
run();
}
disp.innerText = acc.toFixed(2);
}, oneStepTime);
}
function run() {
let count = 10;
const countdownInterval = setInterval(() => {
timerDisp.innerText = count;
count--;
if (count < 0) {
clearInterval(countdownInterval);
timerDisp.innerText = '';
randomFloat(Random(), 10, 1);
}
}, 1000);
}
function Random() {
const max = 5;
return Math.round(Math.random() * max * 100) / 100;
}
run(3, 10);
#timer {
position: absolute;
width: 300px;
height: 69px;
top: 320px;
left: 960px;
color: #000000;
font-family: "Saira Semi Condensed", sans-serif;
font-weight: 600;
font-size: 70px;
text-align: center;
}
#num1avi {
position: absolute;
width: 300px;
height: 69px;
top: 320px;
left: 960px;
/*background-color: #870D33;*/
color: 000000;
font-family: "Saira Semi Condensed",sans-serif;
font-weight: 600;
font-size: 70px;
text-align: center;
}
<div id="num1avi"></div>
<div id="timer"></div>
Ответы (1 шт):
Автор решения: Rudi
→ Ссылка
Чтобы вписать единицу, как минимальное число в функцию Random()
нужно её указать и изменить формулу расчёта. Если нужно чтобы позиция элементов с id num1avi
и timer
была в одном и том же месте и при этом числа не накладывались друг на друга, нужно очищать текст в num1avi
это можно сделать добавив задержку через setTimeout
. Можно в css
убрать position: absolute;
удалить задержку setTimeout(()=>{},500)
из этого примера и оставить disp.innerText = ""; run();
после clearInterval(interval);
в функции randomFloat
чтобы числа выводились одно под другим.
const oneStepTime = 3;
const disp = document.getElementById("num1avi");
const timerDisp = document.getElementById("timer");
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();
}, 500)
}
disp.innerText = acc.toFixed(2);
}, oneStepTime);
}
function run() {
let count = 3;
const countdownInterval = setInterval(() => {
timerDisp.innerText = count;
count--;
if (count < 0) {
clearInterval(countdownInterval);
timerDisp.innerText = '';
randomFloat(Random(), 10, 1);
}
}, 1000);
}
function Random() {
const min = 1;
const max = 5;
return Math.round((Math.random() * (max - min) + min) * 100) / 100;
}
run(3, 10);
#timer {
position: absolute;
width: 300px;
height: 69px;
/*top: 320px;
left: 960px;*/
color: #000000;
font-family: "Saira Semi Condensed", sans-serif;
font-weight: 600;
font-size: 70px;
text-align: center;
}
#num1avi {
position: absolute;
width: 300px;
height: 69px;
/*top: 320px;
left: 960px;*/
/*background-color: #870D33;*/
color: 000000;
font-family: "Saira Semi Condensed", sans-serif;
font-weight: 600;
font-size: 70px;
text-align: center;
}
<div id="num1avi"></div>
<div id="timer"></div>