search
HomeWeb Front-endHTML Tutorialcss3 clock making_html/css_WEB-ITnose

You need to know a few things before making a clock:

1. Calculation of point coordinates on a circle

2. Hour hand on the clock, Conversion of minute hand and second hand

Let’s look at the clock. The first thing that comes to mind is related to the angle . Then there is the carry relationship between the second hand, minute hand, and hour hand.

For example, h hours m minutes s seconds, the angles of the hour hand, minute hand, and second hand at this moment: (-90, because of the rotateZ angle rotation rule, the default is to start from the horizontal, counterclockwise, clockwise -)

ds = s*6-90;

dm = m*6 (s/60*6)-90;

dh = h*30 (m /60*30)-90;

  1. We all know that 1s = 1 / 60min, 1min = 1 / 60h;
  2. Observing any watch or clock, we will find that, Usually the dial of a clock is divided into 12 large grids, 5*12=60 small grids, and the entire dial is 360°, which means that each small grid is 6°. In other words, every time the second and minute hands move, they will move through 1 small division, 6°, and when the hour hand moves, they will move through one large division, 5*6°=30°; therefore, the second and minute hands The base value of movement is 6°, and the hour hand is 30°;
  3. In addition, when the minute hand moves, the hour hand does not stand still, but moves forward silently, unwilling to be lonely. That is to say, when the minute hand moves Suddenly, when it moves 6°, the hour hand actually moves 1/60 * 30°. Therefore, when calculating the angle of the hour hand, do not ignore the influence of the minute hand. (Although the second hand has the same effect on the minute hand, it is almost invisible, so we usually ignore it)

3. js get time

  • Get the current time, var date = new Date(), get the current time, expressed in milliseconds.
  • getFullYear(), 4-digit year
  • getMonth(), from 0-11, representing January to December respectively
  • getDate(), the number of days in the month
  • getDay(), from 0-6, representing Sunday-Saturday respectively
  • getHours(),0-23
  • getMinutes(),0-59
  • getSecond(),0-59
  • The code is as follows:




    Production of clock effect





    body {
    font-family: 'Microsoft Yahei';
    }
    ol,ul {
    margin: 0;
    padding: 0;
    list-style: none;
    }
    h1 {
    margin-top: 40px;
    text-align: center;
    color: #333;
    }

    /*Dial*/
    .clock {
    position: relative;
    width: 200px;
    height: 200px;
    border-radius: 100%;
    background-color: #000;
    margin: 50px auto;
    }
    .pointer li.circle {
    position: absolute;
    top: 50%;
    left: 50 %;
    transform-origin: left center; /*The base point is set in the leftmost middle to ensure rotation around the center of the circle*/
    background: #fff;
    width: 10px;
    height: 10px;
    border-radius: 100%;
    margin-top: -5px;
    margin-left: -5px;
    }

    /*Scale*/
    .line -hour li,
    .line-min li {
    position: absolute;
    left: 50%;
    top: 50%;
    transform-origin: 0 0;
    background -color: #fff;
    }
    .line-hour li {
    width: 10px;
    height: 2px;
    }
    .line-min li {
    width : 5px;
    height: 2px;
    }

    /*number*/
    .number {
    position: absolute;
    height: 150px;
    width: 150px;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%); /*Keep the number centered*/
    font-size: 15px;
    color: #fff;
    }
    .number li {
    position: absolute;
    transform: translate(-50%, -50%);
    }

    /*Pointer*/
    .pointer li {
    position: absolute;
    top: 50%;
    left: 50%;
    transform-origin: left center; /*base point Set in the middle of the leftmost position, ensuring rotation around the center of the circle*/
    background: #fff;
    }
    .pointer li.hour {
    width: 45px;
    height: 3px;
    margin-top: -1px;
    }
    .pointer li.min {
    width: 60px;
    height: 2px;
    margin-top: -1px;
    }
    .pointer li.sec {
    width: 90px;
    height: 1px;
    margin-top: -1px;
    background-color: red;
    }




    CSS clock effect demonstration






        • li>





        /*
        * draw Clock tick mark
        * @param wrap The parent container of the tick mark
        * @param total The total number of tick marks
        * @param translateX The offset of the tick mark in the x-axis direction
        */

        function drawLines(wrap,total,translateX){
        var gap = 360/total;
        var strHtml ='';
        for (var i = 0; i strHtml = '

      1. ';
        };
        wrap.html(strHtml);
        }

        /*
        * Draw clock numbers
        * @param wrap The parent container of numbers, modeled on the radial menu principle http://www.cnblogs.com/wuxiaobin/p/4644806.html
        * Since the rotation starts from the horizontal x-axis, -90
        */
        function drawNumbers(wrap){
        var radius = wrap.width() / 2;

        var strHtml = '';
        for(var i=1; i var myAngle = (i-3)/6 * Math.PI; //Original formula angle =>radians (i*30-90)*(Math.PI/180) => (i-3)/6 * Math.PI ;

        var myX = radius radius*Math.cos(myAngle), // x=r rcos(θ)
        myY = radius radius*Math.sin(myAngle); // y=r rsin (θ)

        strHtml = '

      2. ' i '
      3. ';
        }
        wrap.html(strHtml);
        }


        /*
        * The clock moves, turning the second hand, minute hand, and hour hand
        */
        function move(){
        var domHour = $(".hour"),
        domMin = $(".min"),
        domSec = $(".sec");

        setInterval(function() {
        var now = new Date(),
        hour = now.getHours(),
        min = now.getMinutes(),
        sec = now.getSeconds();

        var secAngle = sec*6 - 90, // s*6-90
        minAngle = min*6 sec*0.1 - 90, // m*6 s*0.1-90
        hourAngle = hour*30 min *0.5 - 90; // h*30 m*0.5 - 90

        domSec.css('transform', 'rotate(' secAngle 'deg)');
        domMin.css('transform' , 'rotate(' minAngle 'deg)');
        domHour.css('transform', 'rotate(' hourAngle 'deg)');

        document.title = hour ':' min ' :' sec;

        },1000);

        }
        })


        > ;

        Final effect:

        Statement
        The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
        The Future of HTML: Evolution and Trends in Web DesignThe Future of HTML: Evolution and Trends in Web DesignApr 17, 2025 am 12:12 AM

        The future of HTML is full of infinite possibilities. 1) New features and standards will include more semantic tags and the popularity of WebComponents. 2) The web design trend will continue to develop towards responsive and accessible design. 3) Performance optimization will improve the user experience through responsive image loading and lazy loading technologies.

        HTML vs. CSS vs. JavaScript: A Comparative OverviewHTML vs. CSS vs. JavaScript: A Comparative OverviewApr 16, 2025 am 12:04 AM

        The roles of HTML, CSS and JavaScript in web development are: HTML is responsible for content structure, CSS is responsible for style, and JavaScript is responsible for dynamic behavior. 1. HTML defines the web page structure and content through tags to ensure semantics. 2. CSS controls the web page style through selectors and attributes to make it beautiful and easy to read. 3. JavaScript controls web page behavior through scripts to achieve dynamic and interactive functions.

        HTML: Is It a Programming Language or Something Else?HTML: Is It a Programming Language or Something Else?Apr 15, 2025 am 12:13 AM

        HTMLisnotaprogramminglanguage;itisamarkuplanguage.1)HTMLstructuresandformatswebcontentusingtags.2)ItworkswithCSSforstylingandJavaScriptforinteractivity,enhancingwebdevelopment.

        HTML: Building the Structure of Web PagesHTML: Building the Structure of Web PagesApr 14, 2025 am 12:14 AM

        HTML is the cornerstone of building web page structure. 1. HTML defines the content structure and semantics, and uses, etc. tags. 2. Provide semantic markers, such as, etc., to improve SEO effect. 3. To realize user interaction through tags, pay attention to form verification. 4. Use advanced elements such as, combined with JavaScript to achieve dynamic effects. 5. Common errors include unclosed labels and unquoted attribute values, and verification tools are required. 6. Optimization strategies include reducing HTTP requests, compressing HTML, using semantic tags, etc.

        From Text to Websites: The Power of HTMLFrom Text to Websites: The Power of HTMLApr 13, 2025 am 12:07 AM

        HTML is a language used to build web pages, defining web page structure and content through tags and attributes. 1) HTML organizes document structure through tags, such as,. 2) The browser parses HTML to build the DOM and renders the web page. 3) New features of HTML5, such as, enhance multimedia functions. 4) Common errors include unclosed labels and unquoted attribute values. 5) Optimization suggestions include using semantic tags and reducing file size.

        Understanding HTML, CSS, and JavaScript: A Beginner's GuideUnderstanding HTML, CSS, and JavaScript: A Beginner's GuideApr 12, 2025 am 12:02 AM

        WebdevelopmentreliesonHTML,CSS,andJavaScript:1)HTMLstructurescontent,2)CSSstylesit,and3)JavaScriptaddsinteractivity,formingthebasisofmodernwebexperiences.

        The Role of HTML: Structuring Web ContentThe Role of HTML: Structuring Web ContentApr 11, 2025 am 12:12 AM

        The role of HTML is to define the structure and content of a web page through tags and attributes. 1. HTML organizes content through tags such as , making it easy to read and understand. 2. Use semantic tags such as, etc. to enhance accessibility and SEO. 3. Optimizing HTML code can improve web page loading speed and user experience.

        HTML and Code: A Closer Look at the TerminologyHTML and Code: A Closer Look at the TerminologyApr 10, 2025 am 09:28 AM

        HTMLisaspecifictypeofcodefocusedonstructuringwebcontent,while"code"broadlyincludeslanguageslikeJavaScriptandPythonforfunctionality.1)HTMLdefineswebpagestructureusingtags.2)"Code"encompassesawiderrangeoflanguagesforlogicandinteract

        See all articles

        Hot AI Tools

        Undresser.AI Undress

        Undresser.AI Undress

        AI-powered app for creating realistic nude photos

        AI Clothes Remover

        AI Clothes Remover

        Online AI tool for removing clothes from photos.

        Undress AI Tool

        Undress AI Tool

        Undress images for free

        Clothoff.io

        Clothoff.io

        AI clothes remover

        AI Hentai Generator

        AI Hentai Generator

        Generate AI Hentai for free.

        Hot Article

        R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
        1 months agoBy尊渡假赌尊渡假赌尊渡假赌
        R.E.P.O. Best Graphic Settings
        1 months agoBy尊渡假赌尊渡假赌尊渡假赌
        R.E.P.O. How to Fix Audio if You Can't Hear Anyone
        1 months agoBy尊渡假赌尊渡假赌尊渡假赌
        R.E.P.O. Chat Commands and How to Use Them
        1 months agoBy尊渡假赌尊渡假赌尊渡假赌

        Hot Tools

        EditPlus Chinese cracked version

        EditPlus Chinese cracked version

        Small size, syntax highlighting, does not support code prompt function

        WebStorm Mac version

        WebStorm Mac version

        Useful JavaScript development tools

        Safe Exam Browser

        Safe Exam Browser

        Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

        SublimeText3 English version

        SublimeText3 English version

        Recommended: Win version, supports code prompts!

        Zend Studio 13.0.1

        Zend Studio 13.0.1

        Powerful PHP integrated development environment