Javascript 如何创建进度条动画

Javascript 如何创建进度条动画,javascript,css,html,Javascript,Css,Html,所以我想为密码输入创建一个简单的动画进度条,我目前的问题是我不知道如何在代码中实现动画。。。我还不知道jquery,所以我必须使用CSS/JS/HTML5。谢谢你的帮助,谢谢 var password=document.getElementById('input'); var feedback=document.getElementById('output'); var progress=document.getElementById('progress'); 函数checkLength(){

所以我想为密码输入创建一个简单的动画进度条,我目前的问题是我不知道如何在代码中实现动画。。。我还不知道jquery,所以我必须使用CSS/JS/HTML5。谢谢你的帮助,谢谢

var password=document.getElementById('input');
var feedback=document.getElementById('output');
var progress=document.getElementById('progress');
函数checkLength(){
var passwordValue=password.value;
if(passwordValue.length==0){
feedback.textContent='to short!';
progress.value=0;
}else if(passwordValue.length==1){
feedback.textContent='差';
进展值=5;
}else if(passwordValue.length==2){
feedback.textContent='差';
进步值=10;
}else if(passwordValue.length==3){
feedback.textContent='差';
进展值=20;
}else if(passwordValue.length==4){
feedback.textContent='Better';
进步值=30;
}else if(passwordValue.length==5){
feedback.textContent='Better';
进步值=40;
}else if(passwordValue.length==6){
feedback.textContent='Good';
进展值=50;
}else if(passwordValue.length==7){
feedback.textContent='Good';
进展值=60;
}else if(passwordValue.length==8){
feedback.textContent='非常好';
进展值=70;
}else if(passwordValue.length==9){
feedback.textContent='Perfect';
进展值=80;
}else if(passwordValue.length>=10){
feedback.textContent='Golden';
进度值=100;
}
}
password.addEventListener('keyup',checkLength,false)
*{
保证金:自动;
颜色:#000;
文本对齐:居中;
字体系列:Verdana,日内瓦,无衬线;
}
#内容{
最小高度:990px;
}
输入{
边缘顶部:30px;
背景色:白色;
}
#进展{
宽度:500px;
盒影:0px 18px 20px黑色;
-webkit外观:无;
-moz外观:无;
外观:无;
边界:无;
背景色:#6F8D96
}
#进度::-webkit进度条{
背景色:#6F8D96;
不透明度:0.7;
}
#进度::-webkit进度值{
背景色:红色;
}
#进度::-moz进度条{
背景色:红色;
不透明度:0.7;
}
#输出{
颜色:#fff;
}

密码检查器
输入您的密码


准备好的
我建议您避免

#progress::-webkit-progress-bar
只需使用如下两个div:

<div class="progress-wrapper">
 <div class="progress-wrapper__over"></div>
</div>
然后在输入更改时,只需更改
progress-wrapper\uu的宽度


如果只使用一个开关,则建议不要使用3000。毕竟,我建议避免使用javascript动画处理任何可以使用css处理的情况。

我建议您避免使用javascript动画

#progress::-webkit-progress-bar
只需使用如下两个div:

<div class="progress-wrapper">
 <div class="progress-wrapper__over"></div>
</div>
然后在输入更改时,只需更改
progress-wrapper\uu的宽度


这是一个技巧,如果只使用一个开关,那么就不用使用3000:),毕竟我建议避免使用javascript动画来处理任何可以使用css处理的情况。

这个css类应该有

带有显示块的div,顶部还有一个div,并更改

div,使其感觉像一个进度条,添加css3动画,将动画

论宽度变化

document.querySelector('.loading-bar').style.width = width + 'px';

.loading-container {
  width: 400px;
  height: 80px;
  background-color: yellow;
 }

.loading-bar {
   width: 0; // this should be incremented
   height: 80px;
   background-color: green;
   will-change: width;
   transition: width 200ms ease in;
 }

这个css类应该有

带有显示块的div,顶部还有一个div,并更改

div,使其感觉像一个进度条,添加css3动画,将动画

论宽度变化

document.querySelector('.loading-bar').style.width = width + 'px';

.loading-container {
  width: 400px;
  height: 80px;
  background-color: yellow;
 }

.loading-bar {
   width: 0; // this should be incremented
   height: 80px;
   background-color: green;
   will-change: width;
   transition: width 200ms ease in;
 }

这可能不是您问题的答案,我也不确定是否可以使用进度标记设置进度的动画。但可以使用div&span创建进度条并设置进度条的动画,这可能是您不想使用的。 另外,我在你的一条评论中看到你想学习新东西,所以我修改了你的js

var password,feedback;progress ="";
 function _checkLength(){
            var passwordValue = password.value.length;
            switch(passwordValue){
           case 0: _updateProgressBar("too short!",0);
           break;
           case 1: _updateProgressBar("Poor",5);
           break;
           case 2: _updateProgressBar("Poor",10);
           break;
           case 3: _updateProgressBar("Poor",20);
           break;
           case 4: _updateProgressBar("Better",30);
           break;
           case 5: _updateProgressBar("Better",40);
           break;
           case 6: _updateProgressBar("Good",60);
           break;
           case 7: _updateProgressBar("Good",70);
           break;
           case 8: _updateProgressBar("Really Good",80);
           break;
           case 9: _updateProgressBar("Perfect",90);
           break;
           case 10: _updateProgressBar("Golden",100);
           break;
          } 
        }
function _updateProgressBar(textContent,value){
     feedback.textContent =textContent;
        progress.value = value;
}


// This will through an Uncaught TypeError:Cannot read property "addEventListener" of null if this snippet is inside head tag. You can put this script inside body tag
    // password.addEventListener('keyup', _checkLength, false);

    // Else you can use DOMContentLoaded event to addEventListener to element

    document.addEventListener("DOMContentLoaded",function(event){
        password = document.getElementById('input');
        feedback = document.getElementById('output');
        progress = document.getElementById('progress');
        password.addEventListener('keyup', _checkLength, false);
        })

这里有一个

这可能不是你问题的答案,我也不确定是否可以使用进度标签来设置进度的动画。但是肯定可以使用div&span创建进度条并设置进度条的动画,这可能是你不想使用的。 另外,我在你的一条评论中看到你想学习新东西,所以我修改了你的js

var password,feedback;progress ="";
 function _checkLength(){
            var passwordValue = password.value.length;
            switch(passwordValue){
           case 0: _updateProgressBar("too short!",0);
           break;
           case 1: _updateProgressBar("Poor",5);
           break;
           case 2: _updateProgressBar("Poor",10);
           break;
           case 3: _updateProgressBar("Poor",20);
           break;
           case 4: _updateProgressBar("Better",30);
           break;
           case 5: _updateProgressBar("Better",40);
           break;
           case 6: _updateProgressBar("Good",60);
           break;
           case 7: _updateProgressBar("Good",70);
           break;
           case 8: _updateProgressBar("Really Good",80);
           break;
           case 9: _updateProgressBar("Perfect",90);
           break;
           case 10: _updateProgressBar("Golden",100);
           break;
          } 
        }
function _updateProgressBar(textContent,value){
     feedback.textContent =textContent;
        progress.value = value;
}


// This will through an Uncaught TypeError:Cannot read property "addEventListener" of null if this snippet is inside head tag. You can put this script inside body tag
    // password.addEventListener('keyup', _checkLength, false);

    // Else you can use DOMContentLoaded event to addEventListener to element

    document.addEventListener("DOMContentLoaded",function(event){
        password = document.getElementById('input');
        feedback = document.getElementById('output');
        progress = document.getElementById('progress');
        password.addEventListener('keyup', _checkLength, false);
        })

这里有一个

嗨,问题是这只适用于IEA为什么不使用Bootstrap?@Raca我只想一步一步地手动创建所有内容,这样我就可以真正学到一些新东西:)嗨,问题是,这只适用于IE为什么不使用Bootstrap?@Raca我只想一步一步地手动创建所有内容,这样我就可以真正了解一些新的内容:)我真的不想这么做,因为HTML中有一个标记,但是看起来只有IE才完全支持:(进度很好,但是需要一段时间才能为所有浏览器获得所有的好糖:)我真的不想这么做,因为HTML中有一个标签,但是看起来只有IE才完全支持:(进度很好,但是需要一段时间才能为所有浏览器获得所有的好糖:)