返回顶部
首页 > 资讯 > 精选 >怎么制作漂亮精致的HTML时钟
  • 673
分享到

怎么制作漂亮精致的HTML时钟

2023-06-04 11:06:14 673人浏览 安东尼
摘要

本篇内容介绍了“怎么制作漂亮精致的html时钟”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先看图:涉及到的知识点有: css3动画、DOM

本篇内容介绍了“怎么制作漂亮精致的html时钟”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

先看图:

怎么制作漂亮精致的HTML时钟
涉及到的知识点有: css3动画、DOM操作、定时器、圆点坐标的计算(好多人是不是已经还给自己的老师了~)
 

1、准备HTML

首先,我们需要准备HTML结构,背景、表盘、指针(时针、分针、秒针)、数字。

<div id="clock">
    <div class="bg">
        <div class="point">
            <div id="hour"></div>
            <div id="minute"></div>
            <div id="second"></div>
            <div class="circle"></div>
        </div>
    </div>
< /div>

2、准备CSS

定义好指针的颜色和大小,需要说明的是transform: rotate(-90deg); 用来旋转指针,transform-origin:0 6px; 用来设置旋转中心点。
<style>
    *{
        margin: 0;
        padding: 0;
    }
    #clock{
        margin: 5% auto;
        width: 400px;
        height: 400px;
        border-radius: 10px;
        background: #aaa;
        position: relative;
        transfORM: rotate(-90deg);
    }
    #clock .bg{
        width: 360px;
        height: 360px;
        border-radius: 50%;
        background: #fff;
        position: absolute;
        left: 50%;
        top: 50%;
        margin-left: -180px;
        margin-top: -180px;
    }
    #clock .point{
        position: absolute;
        left: 50%;
        top: 50%;
        margin-left: -14px;
        margin-top: -14px;
    }
    #clock #hour{
        width: 80px;
        height: 16px;
        background: #000;
        margin: 6px 0 0 14px;
        
        transform-origin:0 8px;
        
        border-radius: 16px;
    }

    #clock #minute{
        width: 120px;
        height: 12px;
        background: #000;
        margin: -14px 0 0 14px;
        transform-origin:0 6px;
        border-radius: 12px;
    }
    #clock #second{
        width: 160px;
        height: 6px;
        background: #f00;
        margin: -9px 0 0 14px;
        transform-origin:0 3px;
        border-radius: 6px;
    }
    #clock .point .circle{
        width: 28px;
        height: 28px;
        border-radius: 50%;
        background: #000;
        position: absolute;
        left: 0;
        top: 0;
    }
    @keyframes hour {
        from {transform: rotate(0deg);}
        to {transform: rotate(360deg);}
    }

    #clock .number{
        position: absolute;
        font-size: 34px;
        width: 50px;
        height: 50px;
        line-height: 50px;
        text-align: center;
        transform: rotate(90deg);
    }
< /style>

3、计算时针位置

js通过Date对象获取当前时间,getHours获取小时、getMinutes获取分钟、getSeconds获取秒。时针转动一周是12格,每格角度就是360°/12,分钟和秒都是60格,每格角度360°/60。
function clock(){
    var date = new Date();//获取当前时间
    //时(0-23) 分(0-59)秒(0-59)
    //计算转动角度
    var hourDeg = date.getHours()*360/12;
    var minuteDeg = date.getMinutes()*360/60;
    var secondDeg = date.getSeconds()*360/60;
    //console.log(hourDeg, minuteDeg, secondDeg);
    //设置指针
    hour.style.transform = 'rotate('+hourDeg+'deg)';
    minute.style.transform = 'rotate('+minuteDeg+'deg)';
    second.style.transform = 'rotate('+secondDeg+'deg)';
}

4、时钟转动

通过setInterval设置定时器,每秒刷新一次。注意,需要初始化执行一次,否则会在1s后才能看到效果。
//初始化执行一次
clock();
setInterval(clock,1000);

5、绘制数字时间

数字时间也是在一个圆周上,我们只用确定好半径,然后得到半径上的坐标。通过左边来定位每个数字就好了。看一下圆坐标系的计算规则:

怎么制作漂亮精致的HTML时钟
 
* 圆半径坐标计算:
* x = pointX + r*cos(angle);
* y = pointY + r*sin(angle);
但是注意,我们计算的坐标是圆弧上点的坐标,当定位每个数字时,都是以元素的左上角点进行定位,这样我们的数字就会存在偏移。也就是说数字的中心点不在圆弧上,解决办法就是把坐标点(x,y)平移自身的一半(x-w/2, y-h/2)
,这样数字的中心点就在圆弧上了。
var pointX = 200;
var pointY = 200;
var r = 150;
function drawNumber(){
    var deg = Math.PI*2/12;//360°
    for (var i = 1; i <= 12; i++) {
        //计算每格的角度
        var angle = deg*i;
        //计算圆上的坐标
        var x = pointX + r*Math.cos(angle);
        var y = pointY + r*Math.sin(angle);
        //创建div,写入数字
        var number = document.createElement('div');
        number.className = 'number';
        number.innerHTML = i;
        //减去自身的一半, 让div的中心点在圆弧上
        number.style.left = x - 25 + 'px';
        number.style.top = y - 25  + 'px';
        //添加到页面
        myClock.appendChild(number);
    }
}
完整JS代码:
<script>
    
    //TODO step1: 获取时钟的指针
    var hour = document.getElementById('hour');//时针
    var minute = document.getElementById('minute');//分针
    var second = document.getElementById('second');//秒针
    var myClock = document.getElementById('clock');//时钟

    //TODO step2: 获取当前时间,把指针放在正确的位置
    function clock(){
        var date = new Date();//获取当前时间
        //时(0-23) 分(0-59)秒(0-59)
        //计算转动角度
        var hourDeg = date.getHours()*360/12;
        var minuteDeg = date.getMinutes()*360/60;
        var secondDeg = date.getSeconds()*360/60;
        //console.log(hourDeg, minuteDeg, secondDeg);
        //设置指针
        hour.style.transform = 'rotate('+hourDeg+'deg)';
        minute.style.transform = 'rotate('+minuteDeg+'deg)';
        second.style.transform = 'rotate('+secondDeg+'deg)';
    }
    //初始化执行一次
    clock();
    //TODO step3: 设置定时器
    setInterval(clock,1000);

    
    var pointX = 200;
    var pointY = 200;
    var r = 150;
    //TODO step4: 画时钟数字
    function drawNumber(){
        var deg = Math.PI*2/12;//360°
        for (var i = 1; i <= 12; i++) {
            //计算每格的角度
            var angle = deg*i;
            //计算圆上的坐标
            var x = pointX + r*Math.cos(angle);
            var y = pointY + r*Math.sin(angle);
            //创建div,写入数字
            var number = document.createElement('div');
            number.className = 'number';
            number.innerHTML = i;
            //减去自身的一半, 让div的中心点在圆弧上
            number.style.left = x - 25 + 'px';
            number.style.top = y - 25  + 'px';
            //添加到页面
            myClock.appendChild(number);
        }
    }
    drawNumber();
< /script>

“怎么制作漂亮精致的HTML时钟”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么制作漂亮精致的HTML时钟

本文链接: https://lsjlt.com/news/237634.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么制作漂亮精致的HTML时钟
    本篇内容介绍了“怎么制作漂亮精致的HTML时钟”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先看图:涉及到的知识点有: CSS3动画、DOM...
    99+
    2023-06-04
  • win7桌面怎么设置一个漂亮的时钟?
    win7系统的电脑,看到有的朋友,在系统桌面的右上角有一个时钟,这个时钟是怎么添加的?对于时间观念比较强的朋友,如果能再桌面上设置一口挂钟,既方便个人时间管理,又比较美观,下面小编就为大家介绍win7桌面怎么设置一个漂亮...
    99+
    2023-06-09
    win7桌面 时钟 桌面 win7 时钟
  • 怎么使用WordArt制作漂亮词云
    本篇内容主要讲解“怎么使用WordArt制作漂亮词云”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用WordArt制作漂亮词云”吧!它就是:WordArt主页地址:https://word...
    99+
    2023-06-02
  • 怎么用纯html5投射出一个非常漂亮的时钟
    今天小编给大家分享一下怎么用纯html5投射出一个非常漂亮的时钟的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我...
    99+
    2024-04-02
  • 怎么用css样式制作漂亮的按钮
    这篇文章主要讲解了“怎么用css样式制作漂亮的按钮”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用css样式制作漂亮的按钮”吧! ...
    99+
    2024-04-02
  • Dreamweaver中怎么制作漂亮的导航条按钮
    本篇内容介绍了“Dreamweaver中怎么制作漂亮的导航条按钮”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先创建一个1x6的表格,参数...
    99+
    2023-06-08
  • 怎么用html、css和js制作酷黑模拟时钟
    这篇文章主要介绍了怎么用html、css和js制作酷黑模拟时钟,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用 HTML、CSS 和 Ja...
    99+
    2024-04-02
  • html5怎么制作时钟动画
    本篇内容介绍了“html5怎么制作时钟动画”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!<canva...
    99+
    2024-04-02
  • 怎么用HTML5制作数字时钟
    这篇文章主要介绍“怎么用HTML5制作数字时钟”,在日常操作中,相信很多人在怎么用HTML5制作数字时钟问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用HTML5制作数字...
    99+
    2024-04-02
  • 怎么用CSS绘制漂亮的圆形图案效果
    本篇内容介绍了“怎么用CSS绘制漂亮的圆形图案效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!另外一种也...
    99+
    2024-04-02
  • 基于QT怎么绘制一个漂亮的预警仪表
    这篇文章主要讲解了“基于QT怎么绘制一个漂亮的预警仪表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于QT怎么绘制一个漂亮的预警仪表”吧!以下是用Qt实现漂亮预警仪表的步骤和代码:创建一个...
    99+
    2023-07-05
  • 如何利用html 5制作一个简单的时钟效果
    这篇文章将为大家详细讲解有关如何利用html 5制作一个简单的时钟效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们先来看看最终效果:看上去很简单的一个时钟效果,但是具体实现代码仍然包含了一些重点知识...
    99+
    2023-06-06
  • Python怎么调用ChatGPT制作基于Tkinter的桌面时钟
    本文小编为大家详细介绍“Python怎么调用ChatGPT制作基于Tkinter的桌面时钟”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python怎么调用ChatGPT制作基于Tkinter的桌面时钟”文章能帮助大家解决疑惑,下面跟着小...
    99+
    2023-07-05
  • jquery模拟LCD时钟的html代码怎么写
    这篇“jquery模拟LCD时钟的html代码怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看...
    99+
    2024-04-02
  • Python中怎么用pyqt5制作指针钟表显示时间
    这篇文章主要介绍“Python中怎么用pyqt5制作指针钟表显示时间”,在日常操作中,相信很多人在Python中怎么用pyqt5制作指针钟表显示时间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中...
    99+
    2023-06-29
  • 怎么使用Matlab绘制有趣的罗盘时钟
    这篇文章主要介绍“怎么使用Matlab绘制有趣的罗盘时钟”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Matlab绘制有趣的罗盘时钟”文章能帮助大家解决问题。绘制效果完整代码function...
    99+
    2023-07-05
  • C语言怎么实现基于控制台的电子时钟
    这篇文章主要介绍“C语言怎么实现基于控制台的电子时钟”,在日常操作中,相信很多人在C语言怎么实现基于控制台的电子时钟问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言怎么实现基于控制台的电子时钟”的疑惑有所...
    99+
    2023-06-30
  • wps怎么制作亮眼的撞色系自我介绍页面
    要制作一个亮眼的撞色系自我介绍页面,可以遵循以下步骤:1. 选择撞色配色方案:撞色是指将两个强烈对比的颜色放在一起,可以选择互补色、...
    99+
    2023-09-16
    wps
  • 怎么用HTML制作一个简单的页面
    这篇文章主要介绍“怎么用HTML制作一个简单的页面”,在日常操作中,相信很多人在怎么用HTML制作一个简单的页面问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用HTML制...
    99+
    2024-04-02
  • 怎么用html和CSS3制作好看的导航栏
    这篇文章主要介绍“怎么用html和CSS3制作好看的导航栏”,在日常操作中,相信很多人在怎么用html和CSS3制作好看的导航栏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作