J'ai essentiellement deux divs, l'un étant absolument placé au-dessus de l'autre. J'ai également une variable provenant d'une application qui représente le pourcentage d'achèvement d'un test VoIP. Maintenant, je dois faire en sorte que la barre de progression appelle la variable de pourcentage en utilisant JavaScript.
On m'a dit que je devais mettre à jour la barre de progression de manière asynchrone, mais je ne sais pas comment faire. Je sais qu'il existe de nombreuses façons de le faire. J'apprends encore le JavaScript et j'ai besoin d'un exemple pour travailler. J'ai essayé un certain nombre de solutions qui devraient fonctionner, mais ce que je publie ici n'est que la tentative la plus récente.
Je me réfère à ceci Exemple/tutoriel sur YouTube mais il est évident que je n'utilise pas setInterval()
parce que je veux que la largeur soit basée sur la variable. J'ai fait exécuter le test sur le clic d'un bouton et j'ai pensé qu'il n'était pas nécessaire de l'inclure.
//Variable for the test's percent. it provides just a number in increments of 5
<param name="js-prog" value="progress($PROGRESS$)">\
function progress(pRess) {
const pRessBar = document.getElementsByClassName('ressBar');
const computedStyle = getComputedStyle(pRessBar);
const styleWidth = parseFloat(computedStyle.getPropertyValue('pwidth')) || 0
pRessBar.style.setproperty('pwidth', styleWidth + pRess)
}
.ressBar {
position: relative;
width: 500px;
height: 3em;
background-color: #111;
margin-left: auto;
margin-right: auto;
border-radius: 15px;
color: white;
}
.ressBar::before {
content: attr(data-label);
display: flex;
align-items: center;
position: absolute;
left: .5em;
top: .5em;
bottom: .5em;
width: calc(var(pwidth, 0) * 1%);
min-width: .1rem;
max-width: calc(100% - 1em);
background-color: #069;
border-radius: 15px;
padding: 1em;
}
`<div class="ressBar" Id="ressBar" style="pwidth: .1" data-label="Loading..."></div>