Imaginez une horloge permettant de montrer l’heure à vos utilisateurs, sur un site de voyage par exemple avecs le fuseau horaire du pays de destination ? Créons ensemble cette magnifique horloge facilement grâce à JavaScript !
Commençons par le code HTML.
<div class="clock">
<div class="wrap">
<span class="heure"></span>
<span class="minute"></span>
<span class="seconde"></span>
<span class="dot"></span>
</div>
</div>
.clock
délimite l’horloge, .wrap
délimite l’arrière-plan de l’horloge, .heure
, .minute
, .seconde
sont les aiguilles et .dot
représente le rond central qui réuni les aiguilles.
Stylisons l'horloge et son arrière-plan.
.clock {
border-radius: 50%;
background: #fff;
border: 5px solid white;
box-shadow: inset 2px 3px 8px 0 rgba(0, 0, 0, 0.1);
}
.wrap {
position: relative;
width: 350px;
height: 350px;
}
Passons aux aiguilles.
.minute, .heure {
position: absolute;
height: 100px; width: 6px;
margin: auto;
top: -27%; left: 0; bottom: 0; right: 0;
transform-origin: bottom center;
transform: rotate(0deg);
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.4);
background: black;
}
Affinons l'aiguille des minutes.
.minute {
position: absolute;
height: 130px;
width: 4px;
top: -38%;
left: 0;
box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.4);
transform: rotate(90deg);
}
Après avoir stylisé les aiguilles des minutes et des heures, nous allons ici styliser l’aiguille des minutes plus précisement pour les différencier.
Passons à l'aiguille des secondes.
.seconde {
position: absolute;
height: 90px;
width: 2px;
margin: auto;
top: -26%;
left: 0;
bottom: 0;
right: 0;
border-radius: 4px;
background: #ff4b3e;
transform-origin: bottom center;
transform: rotate(180deg);
}
Nous allons styliser et mettre en rouge l’aiguille des secondes.
Occupons-nous du rond central.
.dot {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 12px;
height: 12px;
border-radius: 50%;
background: white;
border: 2px solid #1b1b1b;
border-radius: 50%;
margin: auto;
}
Ce rond central servira a réunir toutes les aiguilles en un seul point.
Terminons avec le JavaScript, pour rendre notre horloge fonctionnelle.
clock();
function clock() {
const date = new Date();
const hours = ((date.getHours() + 11) % 12 + 1);
const minutes = date.getMinutes();
const seconds = date.getSeconds();
const hour = hours * 30;
const minute = minutes * 6;
const second = seconds * 6;
document.querySelector('.heure').style.transform = `rotate(${hour}deg)`;
document.querySelector('.minute').style.transform = `rotate(${minute}deg)`;
document.querySelector('.seconde').style.transform = `rotate(${second}deg)`;
}
setInterval(clock, 1000);
Que vous essayiez de scaler votre start-up, de créer votre premier site internet ou de vous reconvertir en tant que développeur, Believemy est votre nouvelle maison. Rejoignez-nous, évoluez et construisons ensemble l’avenir.