Hear - это код, который работает без использования jQuery.
<html>
<head>
<script>
let intervalId; // preserve intervalID so we can cancel it later
let startTime; // preserve progressbar start time
let continueFor = 5000; // X sec
let interval = 10; // progressbar updte interval
let wait =
ms => new Promise(
r => setTimeout(r, ms)
);
let repeat =
(ms, func) => new Promise(
r => (
intervalId = setInterval(func, ms),
wait(ms).then(r)
)
);
window.onload = function() {
let div = document.getElementById("div");
let elem = document.getElementById("progress");
let startTime = new Date().valueOf();
div.hidden = true;
// this function stop the repeats, when X sec is passed.
let stop =
() => new Promise(
r => r(setTimeout(() => {
clearInterval(intervalId);
elem.hidden = true;
div.hidden = false;
}, continueFor))
);
// this function repeats to calculate progress bar value, at every interval.
repeat(intervalId, function() {
let elapse = new Date().valueOf() - startTime;
elem.value = elem.max * elapse / continueFor;
console.log(elem.value);
}).then(stop());
};
</script>
</head>
<body>
<div id="div"> I am here! </div>
<progress id="progress" max="100" value="0"></progress>
</body>
</html>