How to make analog Clock Using HTML CSS JS

 Creating an analog clock using HTML, CSS, and JavaScript is a great project to improve your front-end development skills. Here's a step-by-step guide to help you create your own analog clock.


---


## **How to Create an Analog Clock Using HTML, CSS, and JavaScript**


### **Introduction**

An analog clock is a classic project that showcases the power of HTML, CSS, and JavaScript working together. In this tutorial, you'll learn how to create a fully functional analog clock from scratch. We'll use basic HTML to structure the clock, CSS to style it, and JavaScript to handle the time functionality.


### **Step 1: Setting Up the HTML Structure**

First, we'll create the basic structure of the clock using HTML. We'll have a container for the clock and three elements inside it representing the hour, minute, and second hands.


HTML CODE GIVEN BELOW 👇
Analog Clock

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Analog Clock</title>

    <link rel="stylesheet" href="style.css">

</head>

<body>

    <div class="clock">

        <div class="hour"></div>

        <div class="minute"></div>

        <div class="second"></div>

    </div>

    <script src="script.js"></script>

</body>

</html>



### **Step 2: Styling the Clock with CSS**

Now that we have our HTML structure, let's move on to styling the clock. We'll use CSS to create a circular clock face and position the hour, minute, and second hands.


CSS CODE GIVEN BELOW 👇 

body {

    display: flex;

    justify-content: center;

    align-items: center;

    height: 100vh;

    background-color: #282c34;

    margin: 0;

}


.clock {

    width: 300px;

    height: 300px;

    border: 8px solid white;

    border-radius: 50%;

    position: relative;

    background-color: #333;

}


.clock .hour,

.clock .minute,

.clock .second {

    position: absolute;

    bottom: 50%;

    left: 50%;

    transform-origin: bottom;

    transform: translateX(-50%);

}


.clock .hour {

    width: 8px;

    height: 80px;

    background-color: white;

}


.clock .minute {

    width: 4px;

    height: 100px;

    background-color: white;

}


.clock .second {

    width: 2px;

    height: 120px;

    background-color: red;

}



### **Step 3: Adding Functionality with JavaScript**

With the structure and styling in place, we can now add JavaScript to make the clock functional. We'll write a script that updates the rotation of the clock hands based on the current time.


JAVASCRIPT CODE GIVEN BELOW 👇 

const hourHand = document.querySelector('.hour');

const minuteHand = document.querySelector('.minute');

const secondHand = document.querySelector('.second');


function updateClock() {

    const now = new Date();


    const seconds = now.getSeconds();

    const minutes = now.getMinutes();

    const hours = now.getHours();


    const secondsDegrees = ((seconds / 60) * 360) + 90;

    const minutesDegrees = ((minutes / 60) * 360) + ((seconds/60)*6) + 90;

    const hoursDegrees = ((hours / 12) * 360) + ((minutes/60)*30) + 90;


    secondHand.style.transform = `rotate(${secondsDegrees}deg)`;

    minuteHand.style.transform = `rotate(${minutesDegrees}deg)`;

    hourHand.style.transform = `rotate(${hoursDegrees}deg)`;

}


setInterval(updateClock, 1000);


updateClock(); // Initial call to set the clock hands immediately



### **Step 4: Final Touches**

To make sure the clock hands are in the correct initial position, we can call the `updateClock()` function once immediately after defining it. This ensures that when the page loads, the clock hands are set correctly.


### **Conclusion**

Congratulations! You've successfully created an analog clock using HTML, CSS, and JavaScript. This project is a great way to practice positioning elements with CSS and working with JavaScript's Date object. Feel free to customize the clock with different styles or add numbers around the face for a more traditional look.


This blog provides a complete guide on creating an analog clock, including the HTML, CSS, and JavaScript code. If you have any questions or run into any issues, feel free to leave a comment below! Happy coding!

Comments

Post a Comment