Автоматический progressbar
Приветствую! Подскажите, плиз, решение для автоматического progressbar. Он должен заполняться постепенно, желательно через указанный промежуток времени на определенное количество процентов и поинтов. Например, он должен заполниться на 100% (что составляет 10000 поинтов) через месяц, и, ежедневно он постепенно наполняется (можно через какой-то промежуток времени). А если он еще будет показывать и поинты и проценты, то это было бы идеально. Спасибо!!!
P.S. Поинты - взято спонтанно, можно назвать и очки, и коины, как угодно... |
Надеюсь, что страница не должна быть открыта в течении месяца.
Значит то, насколько заполняется ваш прогресбар, должно храниться на сервере. Там учитываться время начала, сколько прошло до очередного открытия страницы... И так для каждого пользователя. Эти вопросы у вас как то решены? А сделать, что бы прогресбар постепенно заполнялся от заданного значения с определенной скоростью - несложно. Но сначала надо решить вопрос, что бы сервер при открытии страницы выдал с какого значения в этот раз заполнять, Или хотя бы посылал дату начала заполнения, а уж потом самим считать, насколько должно быть заполнено к сегодняшнему дню. |
<!DOCTYPE html>
<html>
<style>
#myProgress {
width: 100%;
height: 20px;
background-color: #ddd;
}
#myBar {
width: 0%;
height: 100%;
background-color: #04AA6D;
}
#myText {
width: 100%;
height: 100%;
text-align: center;
color: #e20909;
position: absolute;
}
</style>
<body>
<h3>прошло времени в текущем месяце</h3>
<div id="myProgress">
<div id="myText">0%</div>
<div id="myBar"> </div>
</div>
<script>
let point=10000000
move()
setInterval(() => move(), 100);
function move() {
let date = new Date(), y = date.getFullYear(), m = date.getMonth();
let firstDay = new Date(y, m, 1);
let lastDay = new Date(y, m + 1, 1);
let precents=100*(date-firstDay)/(lastDay-firstDay)
document.getElementById("myBar").style.width = precents + "%";
document.getElementById("myText").innerText=`${Math.floor(precents)}% или ${Math.floor(point*precents/100)} из ${point} условных интервалов`
}
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 01:21. |