Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
Nathlo committed Dec 30, 2021
0 parents commit 0200437
Show file tree
Hide file tree
Showing 4 changed files with 192 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"liveServer.settings.port": 5501
}
41 changes: 41 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Font Awesome-->
<!-- <link rel="stylesheet" href="https://cdnjs.cloudflare
.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"
integrity="sha512-Fo3rlrZj/k7ujTnHg4CGR2D7kSs0v4LLanw2qksYuRlEzO
+tcaEPQogQ0KaoGN26/zrn20ImR1DfuLWnOo7aBA=="
crossorigin="anonymous" referrerpolicy="no-referrer" /> -->
<link rel="stylesheet" href="style.css">
<title>Progress Steps</title>
</head>

<body>
<!--Title
<section class="main-title">
<h1>Answer the Questionnaire Steps by Steps</h1>
</section>
-->
<section class="container">

<div class="progress-container">
<div class="progress" id="progress"></div>
<div class="circle active">1</div>
<div class="circle">2</div>
<div class="circle">3</div>
<div class="circle">4</div>
</div>

<button class="btn" id="prev" disabled>Prev</button>
<button class="btn" id="next">Next</button>

</section>


<script src="script.js"></script>
</body>
</html>
48 changes: 48 additions & 0 deletions script.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
const progress = document.getElementById('progress');
const prev = document.getElementById('prev');
const next = document.getElementById('next');
const circles = document.querySelectorAll('.circle');

let currentActive = 1;

next.addEventListener('click', () => {
currentActive++

if(currentActive > circles.length) {
currentActive = circles.length;
}
update();
});

prev.addEventListener('click', () => {
currentActive--

if(currentActive < 1) {
currentActive = 1;
}
update();
});

function update() {
circles.forEach((circle, idx) => {
if(idx < currentActive) {
circle.classList.add('active')
} else {
circle.classList.remove('active')
}
})

const actives = document.querySelectorAll('.active');

progress.style.width = (actives.length -1) / (circles.length -1) * 100 + '%';

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

}
100 changes: 100 additions & 0 deletions style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
@import url("https://fonts.googleapis.com/css2?family=Muli&display=swap");

* {
box-sizing: border-box;
}

:root {
--line--border--fill: #3498db;
--line--border--empty: #e0e0e0;
}

body {
background-color: #f6f7fb;
font-family: "Muli", sans-serif;
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
overflow: hidden;
margin: 0;
}

.container {
text-align: center;
}

.progress-container {
display: flex;
justify-content: space-between;
position: relative;
margin-bottom: 30px;
max-width: 100%;
width: 350px;
}

.progress-container::before {
content: "";
background-color: var(--line--border--empty);
position: absolute;
top: 50%;
left: 0;
transform: translateY(-50%);
height: 4px;
width: 100%;
z-index: -1;
}

.progress {
background-color: var(--line--border--fill);
position: absolute;
top: 50%;
left: 0;
transform: translateY(-50%);
height: 4px;
width: 0%;
z-index: -1;
transition: 0.4s ease;
}

.circle {
background-color: #fff;
color: #999;
border-radius: 50%;
height: 30px;
width: 30px;
display: flex;
align-items: center;
justify-content: center;
border: 3px solid var(--line--border--empty);
transition: 0.4s ease;
}

.circle.active {
border-color: var(--line--border--fill);
}

.btn {
background-color: var(--line--border--fill);
color: white;
border: 0;
border-radius: 6px;
cursor: pointer;
font-family: inherit;
padding: 8px 30px;
margin: 5px;
font-size: 14px;
}

.btn.active {
transform: scale(0.98);
}

.btn:focus {
outline: 0;
}

.btn:disabled {
background-color: var(--line--border--empty);
cursor: not-allowed;
}

0 comments on commit 0200437

Please sign in to comment.