Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

73
Visualizações
Animar barra programáticamente

Me gustaría una barra para animar de izquierda a derecha. Tengo una entrada numérica. Después del clic de envío, la barra debería estar animada.

Desafortunadamente, no sé cómo activar la animación. Establecí deliberadamente el valor de ancho inicial en 150 px para mostrar que la animación realmente funciona, pero no funciona si se activa mediante programación.

 btn = document.getElementById("btn"); btn.addEventListener('click', () => { const val = document.querySelector('input').value draw(val); }) function draw(val) { bar = document.getElementById("bar"); bar.style.setProperty('--width', (val * 10) + "px"); }
 :root { --width: 150px; } #bar{ background:red; height:50px; margin:50px; transform-origin:top; animation: grow 2s forwards; } @keyframes grow { from { width:0px; } to { width:var(--width); } }
 <input value="5"> <button id="btn">draw</button> <div id="bar"></div>

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

En lugar de animación, use transtion CSS. Entonces (casi) cualquier cambio en un elemento sería animado.

 const runIt = () => { $('.bar').css('width', '100%'); };
 .bar { height: 5px; border-radius: 5px; background: blue; transition: 2s; width: 10px; margin-bottom: 20px; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="bar"></div> <button onclick="runIt()">Run</button>

about 4 years ago · Juan Pablo Isaza Relatório

0

Esto parece un uso perfecto para CSS Transitions . En lugar de agregar una animación al elemento, simplemente configure su ancho para tener un tiempo de transition . Luego, cada vez que cambie el ancho, se animará.

 const btn = document.getElementById("btn"); btn.addEventListener('click', () => { const val = document.querySelector('input').value draw(val); }) function draw(val) { bar = document.getElementById("bar"); bar.style.setProperty('width', (val * 10) + "px"); }
 #bar{ background:red; width: 0; height:50px; margin:50px; transform-origin:top; transition: width 2s; /* Any time the width changes, it will be animated of 2 seconds */ }
 <input value="5"> <button id="btn">Click Me</button> <div id="bar"></div>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda