0

I have a div written as follows:

<div class="progressBarDiv">
   <progress id="pBar" class="progressBarStyles" value='30' max="100"></progress>
   <!-- Some other code --> 
</div>

Here are the styles:

progress.progressBarStyles {
    border-radius: 50px; 
    width: 100%;
    height: 15px;
    margin: 0;
}
progress.progressBarStyles::-webkit-progress-bar {
    background-color: #f7f7f7;
    border: 1px solid #dedcdc;
    border-radius: 50px;
}
progress.progressBarStyles::-webkit-progress-value {
    background-color: #1a73e8;
    border-top-left-radius: 50px;
    border-bottom-left-radius: 50px;
}

What I'm trying to do is change the background-color attribute to green in the progress.progressBarStyles::-webkit-progress-value if the value is >= 100 using js. Here is what I have started with. I know how to do the if statements to check the value but I'm not sure about the syntax to change this specific style.

var progBar = document.getElementByID("pBar");
// Code to change the background color

1 Answer 1

2

You could add a new style for progress bar value for the case when value is greater than or equal to 100 and then toggle that style

var progBar = document.getElementById("pBar");

if (progBar.value >= 100) {
  progBar.classList.toggle('progressBarGte100')
}
progress.progressBarStyles {
  border-radius: 50px;
  width: 100%;
  height: 15px;
  margin: 0;
}

progress.progressBarStyles::-webkit-progress-bar {
  background-color: #f7f7f7;
  border: 1px solid #dedcdc;
  border-radius: 50px;
}

progress.progressBarStyles::-webkit-progress-value {
  background-color: #1a73e8;
  border-top-left-radius: 50px;
  border-bottom-left-radius: 50px;
}

progress.progressBarGte100::-webkit-progress-value {
  background-color: green;
  border-top-left-radius: 50px;
  border-bottom-left-radius: 50px;
}
<div class="progressBarDiv">
  <progress id="pBar" class="progressBarStyles" value='100' max="100"></progress>
  <!-- Some other code -->
</div>

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.