Skip to content

sabbir-web-dev/Progress-Steap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Progress-Steap

It seems like you're trying to create a progress step component using HTML, CSS, and JavaScript. Your HTML structure seems fine, and your CSS styles are well-defined. However, there's a small issue in your JavaScript code. You're trying to execute JavaScript code outside of <script> tags in your HTML file.

Here's how you can organize your code properly:

  1. Wrap your JavaScript code inside <script> tags within your HTML file.
  2. Ensure that your JavaScript code executes after the HTML content has been loaded, either by placing it at the end of the <body> tag or wrapping it in a DOMContentLoaded event listener.

Here's the corrected version of your HTML file:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Progress Steap</title>

  <!-- style  -->
  <link rel="stylesheet" href="/style.css">
</head>
<body>
    <div class="progress-wrap">
      <div class="cercle-wrap">
        <div class="progress" id="progress"></div>
        <div class="cercle active">1</div>
        <div class="cercle">2</div>
        <div class="cercle">3</div>
        <div class="cercle">4</div>
        <div class="cercle">5</div>
      </div>
      <div class="btn-wrap">
        <button class="btn" disabled id="prev">Prev</button>
        <button class="btn" id="next">Next</button>
      </div>
    </div>

  <!-- JavaScript -->
  <script src="/index.js"></script>
</body>
</html>

And here's your JavaScript code with slight modifications:

document.addEventListener("DOMContentLoaded", function() {
  const cercles = document.querySelectorAll(".cercle");
  const next = document.getElementById("next");
  const prev = document.getElementById("prev");
  const progress = document.querySelector(".progress");

  var count = 1;

  next.addEventListener("click", () => {
    count++;
    if (count > cercles.length) {
      count = cercles.length;
    }
    update();
  });

  prev.addEventListener("click", () => {
    count--;
    if (count === 1) {
      count = 1;
    }
    update();
  });

  const update = () => {
    cercles.forEach((cercle, index) => {
      if (index < count) {
        cercle.classList.add("active");
      } else {
        cercle.classList.remove("active");
      }
    });
    const active = document.querySelectorAll(".active");

    progress.style.width =
      ((active.length - 1) / (cercles.length - 1)) * 100 + "%";

    if (count === 1) {
      prev.disabled = true;
    } else if (count === cercles.length) {
      next.disabled = true;
    } else {
      next.disabled = false;
      prev.disabled = false;
    }
  };
});

With these changes, your HTML, CSS, and JavaScript should work together to create the progress step component you desire.

About

Progress strap

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published