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.

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