【问题标题】:change div to increase progress bar更改 div 以增加进度条
【发布时间】:2022-02-10 09:43:48
【问题描述】:

我正在努力让我的进度条在说出特定单词时增加(宾果游戏) 这是用户和聊天机器人之间的对话,用户试图猜测聊天机器人老的秘密。每次用户做对时,聊天机器人都会回复“宾果!”我希望每次聊天机器人回复“宾果!”时都会增加进度条,当进度达到 100% 时,它应该重新启动回 0%。我得到进度条显示,但它没有增加。我正在考虑必须遍历 div 以查找“Bingo”并更改进度栏中的 div。或者只是将“Bingo”作为变量并将其与 div="bingo1" 匹配,然后增加进度条。什么是最有效的方法?

我正在使用聊天机器人,它在 .yml 文件中包含用户和聊天机器人之间的对话,因此可以在那里做一些事情

function myBingo(){
  if (document.getElementById('bingo1').innerHTML.indexOf("Bingo")){ 
    // change progress bar to 10%
  } 
}
#progress {
 width: 500px;   
 border: 1px solid black;
 position: relative;
 padding: 3px;
}
#percent {
 position: absolute;   
 left: 50%;
}
#bar {
 height: 20px;
 background-color: green;
 width: 0%;
}
<!-- I added an id here -->
<div class="msg-text" id="bingo1">Bingo! The secret is Garfield</div>

<div id="progress">
    <span id="percent">0%</span>
    <div id="bar"></div>
</div>

【问题讨论】:

    标签: javascript html css progress-bar


    【解决方案1】:

    他可能给出了不同的答案,因为他不太明白自己想要什么。在下面的解决方案中,进度条将增加id值为bingo1的项目中输入的Bingo表达式的数量。

    如果您提出不同的问题,请在此答案下方编辑问题或评论。

    let percent = document.getElementById('percent');
    let bar = document.getElementById('bar');
    let input = document.getElementById('bingo1');
    let counter = 0;
    
    function update() {
      if (input.value.indexOf("Bingo") != -1)
      { 
        var count = (input.value.match(/Bingo/g) || []).length;
        counter = count * 10;
        
        if(counter >= 100)
          counter = 100;
          
        percent.innerHTML = `${counter}%`;
        bar.style.width = `${counter}%`;
      } 
    }
    
    input.addEventListener('input', update);
    #progress {
     width: 500px;   
     border: 1px solid black;
     position: relative;
     padding: 3px;
    }
    
    #percent {
     position: absolute;   
     left: 50%;
    }
    
    #bar {
     height: 20px;
     background-color: green;
     width: 0%;
    }
    <label>Input: </label>
    <input class="msg-text" id="bingo1"><br><br>
    
    <div id="progress">
        <span id="percent">0%</span>
        <div id="bar"></div>
    </div><br><br>

    【讨论】:

    • 是的,这就是我要找的。但不是输入“Bingo”,它应该在看到“Bingo”时自动更新,并在达到 100% 后重置回 0,并提示用户 100% 已达到:function Fullvalue(){ if (update()== 100){ prompt("100% 达到") ; // 将进度条恢复到 0% } }
    • 简而言之,如果 elementId "bingo1" 存在,则进度条增加 10%。如果进度条已满,则提示用户并将进度条重置为 0% function exists() { //如果它不是“未定义”并且它不是“null”,那么它存在。 if(typeof(input) != 'undefined' && input != null){ update(); //alert('元素存在'); } else{ alert('元素不存在'); }
    猜你喜欢
    • 2013-03-24
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 2023-03-17
    相关资源
    最近更新 更多