I would recommend you don’t just copy and paste the code, just look at the code and type by understanding it.
HTML CodeĀ
Starter Template
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSS -->
<link rel="stylesheet" href="style.css">
<title>Step By Step Form using JavaScript - Coding Torque</title>
</head>
<body>
<!-- Further code here -->
<script src="https://code.jquery.com/jquery-3.6.3.js"
integrity="sha256-nQLuAZGRRcILA+6dMBOvcRh5Pe310sBpanc6+QBmyVM=" crossorigin="anonymous"></script>
<script src="script.js"></script>
</body>
</html>Paste the below code in your <body> tag.
<div class="modal-wrap">
<div class="modal-header"><span class="is-active"></span><span></span><span></span></div>
<div class="modal-bodies">
<div class="modal-body modal-body-step-1 is-showing">
<div class="title">Step 1</div>
<div class="description">Hello there, Let's play a game.</div>
<form>
<input type="text" placeholder="Name" />
<input type="email" placeholder="Email" />
<div class="text-center">
<div class="button">Start</div>
</div>
</form>
</div>
<div class="modal-body modal-body-step-2">
<div class="title">Step 2</div>
<div class="description">Would you rather</div>
<form>
<label>
<input type="radio" name="radio" />live one life that lasts 1,000 years?
</label>
<label>
<input type="radio" name="radio" id="radio2" />live 10 lives that last 100 years each?
</label>
<div class="text-center fade-in">
<div class="button">Next</div>
</div>
</form>
</div>
<div class="modal-body modal-body-step-3">
<div class="title">Step 3</div>
<div class="description">Check your email for the game results.</div>
<div class="text-center">
<div class="button">Done!</div>
</div>
</div>
</div>
</div>
<div class="text-center">
<div class="rerun-button">ReRun</div>
</div>Output Till Now

CSS CodeĀ
Create a fileĀ style.css and paste the code below.
html {
background: radial-gradient(#fff176, #f57f17);
min-height: 100%;
font-family: "Roboto", sans-serif;
}
.title {
text-transform: uppercase;
text-align: center;
margin-bottom: 30px;
color: #ff8f00;
font-weight: 300;
font-size: 24px;
letter-spacing: 1px;
}
.description {
text-align: center;
color: #666;
margin-bottom: 30px;
}
input[type="text"],
input[type="email"] {
padding: 10px 20px;
border: 1px solid #999;
border-radius: 3px;
display: block;
width: 100%;
margin-bottom: 20px;
box-sizing: border-box;
outline: none;
}
input[type="text"]:focus,
input[type="email"]:focus {
border-color: #ff6f00;
}
input[type="radio"] {
margin-right: 10px;
}
label {
margin-bottom: 20px;
display: block;
font-size: 18px;
color: #666;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
padding: 20px 0;
cursor: pointer;
}
label:first-child {
margin-bottom: 0;
border-bottom: none;
}
.button,
.rerun-button {
padding: 10px 20px;
border-radius: 3px;
background: #ff6f00;
color: white;
text-transform: uppercase;
letter-spacing: 1px;
display: inline-block;
cursor: pointer;
}
.button:hover,
.rerun-button:hover {
background: #e66400;
}
.button.rerun-button,
.rerun-button.rerun-button {
border: 1px solid rgba(255, 255, 255, 0.6);
margin-bottom: 50px;
box-shadow: 0px 10px 15px -6px rgba(0, 0, 0, 0.2);
display: none;
}
.text-center {
text-align: center;
}
.modal-wrap {
max-width: 600px;
margin: 50px auto;
transition: transform 300ms ease-in-out;
}
.modal-header {
height: 45px;
background: white;
border-bottom: 1px solid #ccc;
display: flex;
justify-content: center;
align-items: center;
}
.modal-header span {
display: block;
height: 12px;
width: 12px;
margin: 5px;
border-radius: 50%;
background: rgba(0, 0, 0, 0.2);
}
.modal-header span.is-active {
background: rgba(0, 0, 0, 0.4);
background: #ff8f00;
}
.modal-bodies {
position: relative;
perspective: 1000px;
}
.modal-body {
background: white;
padding: 40px 100px;
box-shadow: 0px 50px 30px -30px rgba(0, 0, 0, 0.3);
margin-bottom: 50px;
position: absolute;
top: 0;
display: none;
box-sizing: border-box;
width: 100%;
transform-origin: top left;
}
.modal-body.is-showing {
display: block;
}
.animate-out {
animation: out 600ms ease-in-out forwards;
}
.animate-in {
animation: in 500ms ease-in-out forwards;
display: block;
}
.animate-up {
transform: translateY(-500px) rotate(30deg);
}
@keyframes out {
0% {
transform: translateY(0px) rotate(0deg);
}
60% {
transform: rotate(60deg);
}
100% {
transform: translateY(800px) rotate(10deg);
}
}
@keyframes in {
0% {
opacity: 0;
transform: rotateX(-90deg);
}
100% {
opacity: 1;
transform: rotateX(0deg);
}
}
Output Till Now

JavaScript CodeĀ
Create a fileĀ script.jsĀ and paste the code below.
$('.button').click(function () {
var $btn = $(this),
$step = $btn.parents('.modal-body'),
stepIndex = $step.index(),
$pag = $('.modal-header span').eq(stepIndex);
if (stepIndex === 0 || stepIndex === 1) { step1($step, $pag); }
else { step3($step, $pag); }
});
function step1($step, $pag) {
console.log('step1');
// animate the step out
$step.addClass('animate-out');
// animate the step in
setTimeout(function () {
$step.removeClass('animate-out is-showing')
.next().addClass('animate-in');
$pag.removeClass('is-active')
.next().addClass('is-active');
}, 600);
// after the animation, adjust the classes
setTimeout(function () {
$step.next().removeClass('animate-in')
.addClass('is-showing');
}, 1200);
}
function step3($step, $pag) {
console.log('3');
// animate the step out
$step.parents('.modal-wrap').addClass('animate-up');
setTimeout(function () {
$('.rerun-button').css('display', 'inline-block');
}, 300);
}
$('.rerun-button').click(function () {
$('.modal-wrap').removeClass('animate-up')
.find('.modal-body')
.first().addClass('is-showing')
.siblings().removeClass('is-showing');
$('.modal-header span').first().addClass('is-active')
.siblings().removeClass('is-active');
$(this).hide();
});Written by: Piyush Patil
Code Credits: @devtips
If you have any doubts or any project ideas feel free to Contact Us.
Hope you find this post helpfulš



