# progress steps
1
2
3
4
prev
next
const $ = v => document.querySelector(v);
const $$ = v => document.querySelectorAll(v);
const prevBtn = $("#prev");
const nextBtn = $("#next");
const progress=$$('.progress')
const progressBar=$('#progress')
const min=0,max=progress.length-1
let currentActive=0
console.log($('#progress').style);
prevBtn.addEventListener('click',()=>{
if(prevBtn.classList.contains('disabled')) return;
update()
})
nextBtn.addEventListener('click',()=>{
if(nextBtn.classList.contains('disabled')) return;
console.log(currentActive);
if(currentActive>=max-1){
handleClass(nextBtn).addClass('disabled').removeClass('btn-active')
}
if(currentActive<=max-1){
currentActive++
}
if(currentActive>0){
handleClass(prevBtn).addClass('btn-active').removeClass('disabled')
}
update()
})
prevBtn.addEventListener('click',()=>{
if(prevBtn.classList.contains('disabled')) return;
console.log(currentActive);
if(currentActive<=1){
handleClass(prevBtn).addClass('disabled').removeClass('btn-active')
}
if(currentActive>0){
currentActive--
}
if(currentActive<=max-1){
handleClass(nextBtn).addClass('btn-active').removeClass('disabled')
}
update()
})
function handleClass(el){
let methods={
addClass,
removeClass
}
function addClass(c){
el.classList.add(c)
return methods
}
function removeClass(c){
el.classList.remove(c)
return methods
}
return methods
}
function update(){
progress.forEach((item,index)=>{
console.log(item);
if(index<=currentActive){
item.classList.add('active')
}else{
item.classList.remove('active')
}
progressBar.style.width=(currentActive/max)*100+'%'
})
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68