Como criar: Barra de progresso JavaScript

Aprenda a criar uma barra de progresso usando JavaScript.

Crie a barra de progresso

Passo 1 - Adicionar HTML:

<div id="myProgress">
  <div id="myBar"></div>
</div>

Passo 2 - Adicionar CSS:

#myProgress {
  largura: 100%;
  cor-fundo: cinza;
}
#myBar {
  largura: 1%;
  altura: 30px;
  cor-fundo: verde;
}

Passo 3 - Adicionar JavaScript:

Crie uma barra de progresso dinâmica usando JavaScript (efeito de animação):

var i = 0;
function move() {
  if (i == 0) {
    i = 1;
    var elem = document.getElementById("myBar");
    var width = 1;
    var id = setInterval(frame, 10);
    function frame() {
      if (width >= 100) {
        clearInterval(id);
        i = 0;
      } else {
        width++;
        elem.style.width = width + "%";
      }
    }
  }
}

Experimente você mesmo

Adicionar etiqueta

Se quiser adicionar uma etiqueta para indicar ao usuário o progresso atual no processo, você pode adicionar um novo elemento dentro (ou fora) da barra de progresso:

Passo 1 - Adicionar HTML:

<div id="myProgress">
  <div id="myBar">10%</div>
</div>

Passo 2 - Adicionar CSS:

#myBar {
  largura: 10%;
  altura: 30px;
  cor-fundo: #04AA6D;
  text-align: center; /* centralizado horizontalmente (se necessário) */
  line-height: 30px; /* centralizado verticalmente */
  cor: branco;
}

Experimente você mesmo

Passo 3 - Adicionar JavaScript:

Se quiser atualizar dinamicamente o texto dentro da tag para que ele seja igual ao valor da largura da barra de progresso, adicione o seguinte conteúdo:

var i = 0;
function move() {
  if (i == 0) {
    i = 1;
    var elem = document.getElementById("myBar");
    var width = 10;
    var id = setInterval(frame, 10);
    function frame() {
      if (width >= 100) {
        clearInterval(id);
        i = 0;
      } else {
        width++;
        elem.style.width = width + "%";
        elem.innerHTML = width + "%";
      }
    }
  }
}

Experimente você mesmo