Conta click con evento JS

Vogliamo disegnare un’area quadrata sul nostro sito web. Ogni volta che viene cliccata col mouse, il click viene registrato e visualizzato. Al 10 click, il quadrato deve cambiare colore.

Un esempio di realizzazione

L’esercizio, di per sé, non è complesso ma contiene diversi aspetti interessanti per un programmatore js alle prime armi.

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
    <link href="css/style.css" rel="stylesheet">
    
    <title>Contatore click</title>
  </head>
  <body>
  
  <div class="container">
    <h1>Conta click</h1>
    <h3>Istruzioni</h3>
    <p>Disegnare un quadrato verde al centro del foglio. L'area è cliccabile. Ogni click viene registrato.<br>
      Al decimo click l'area cambia colore e diventa rossa.
    </p>
    <div class="row">
      <div class="col-sm-1">
        <div id="quadrato"></div>
      </div>
      <div class="col-sm-11">
        <div id="contatore">Contatore: 0</div>
      </div>
    </div>  

     
   </div>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
    <script src="js/script.js"></script>
  </body>
</html>

Il listato del file CSS è piuttosto banale, solo per disegnare il nostro quadrato con larghezza/altezza per renderlo visibile.

#quadrato
{
    width: 5em;
    height: 5em;
    background-color: greenyellow;
    margin-top: 200px;
    border: 1px dashed black;
}

#contatore
{
    margin-top: 220px;
}

Veniamo invece al nostro javascript. La prima cosa da individuare sono gli oggetti della pagina con cui interagisce l’utente. Trovato l’id, si può prelevare l’oggetto del DOM con un getElementById o un querySelector. Come in altri esercizi su queste pagine, è bene distaccare la gestione degli eventi dal codice html e creare degli addEventListener opportuni. In questo caso al quadrato del DOM, associamo un ascoltatore sull’evento click che chiama la funzione conta.


let objContatore = document.querySelector("#contatore"); 
let objQuadrato = document.querySelector("#quadrato");


objQuadrato.addEventListener("click",conta, true);


var contatore = 0;

function conta()
{
    contatore = contatore + 1;
    objContatore.innerHTML = "Contatore: " + contatore;

    if (contatore > 10)
    {
        objQuadrato.style.backgroundColor = "red"; 
    }
}

Ultima modifica 18 Aprile 2022