I created a web page with 3 counters that can be triggered separately, but I have a problem with the count function I can't use it on the 3 counters.
I manage to retrieve the index of each button but I don't know how to use it to trigger each counter separately.
can you help me to solve this problem please ?
Here is my code.
"use strict";
/* ___________________________Déclarer les variables et les fonctions______________________________ */
/* Déclaration des variables */
var item = document.querySelectorAll('.slider-item');
var str = document.querySelectorAll('.buttons--start');
var stp = document.querySelectorAll('.button--stop');
var start = 0;
var end = 0;
var diff = 0;
var timer = 0;
/* Fonction chrono */
function chrono(){
end = new Date();
diff = end - start;
diff = new Date(diff);
var sec = diff.getSeconds();
item.innerHTML = sec;
timer = setTimeout("chrono()", 10);
}
/* Fonction pour déclancher le chrono */
function chronoStart(i){
start = new Date();
chrono();
console.log('start '+i);
}
/* Fonction pour arrêter et rénitialiser le chrono */
function chronoStop(i){
clearTimeout(timer)
item[i].innerHTML = "0";
start = new Date();
console.log('stop '+i);
}
/* Fonction qui change la couleur du background */
function changeColor(i){
let bgColor = '#' + Math.random().toString(16).substr(-6);
item[i].style.backgroundColor = bgColor;
}
/* ___________________________Écouter les événements__________________________________ */
/* Appeler la fonction qui déclanche le chrono lorsqu'on clique sur start*/
for (let i=0; i<item.length; i++)
{
str[i].addEventListener('click',(e)=>{
chronoStart(i);
});
//currentPos = i ;
}
/* Appeler la fonction qui arrête le chrono lorsqu'on clique sur stop*/
for (let i=0; i<item.length; i++)
{
stp[i].addEventListener('click',(e)=>{
chronoStop(i);
});
}
/* Appeler la fonction qui change la couleur du background lorsque l'évenement est déclancher*/
for (let i=0; i<item.length; i++)
{
item[i].addEventListener("click",(e)=>{
changeColor(i);
});
}
body {
font-family: Arial, sans-serif;
}
.wrapper {
/* display: flex;
flex-flow: column wrap;
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
padding: 50px; */
}
.slider {
display: flex;
align-items: center;
justify-content: center;
flex-grow: 1;
}
.slider-item {
font-size: 120px;
font-weight: bold;
padding: 15px;
background-color: yellow;
user-select: none;
}
.buttons {
margin-top: 15px;
text-align: center;
}
.buttons button {
display: inline-block;
padding: 15px;
font-size: 16px;
color: #fff;
border: none;
outline: none;
background-color: #000;
cursor: pointer;
}
<div class="wrapper ">
<div class="slider">
<div class="slider-item">0</div>
</div>
<div class="buttons">
<button class="buttons--start" type="button">Start</button>
<button class="button--stop" type="button">Stop</button>
</div>
</div>
<div class="wrapper">
<div class="slider">
<div class="slider-item">0</div>
</div>
<div class="buttons">
<button class="buttons--start" type="button">Start</button>
<button class="button--stop" type="button">Stop</button>
</div>
</div>
<div class="wrapper">
<div class="slider">
<div class="slider-item">0</div>
</div>
<div class="buttons">
<button class="buttons--start" type="button">Start</button>
<button class="button--stop" type="button">Stop</button>
</div>
</div>