javascript 通过面向对象编写圆形数字时钟

效果如图所示,代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        .hour{height: 200px;width: 200px;position: relative;top:100px;left: 100px;border-radius: 50%;
            border: 3px solid #666666;display: inline-block}
        .minute{height: 200px;width: 200px;position: relative;top:100px;left: 100px;border-radius: 50%;
            border: 3px solid #666666;display: inline-block}
        .second{height: 200px;width: 200px;position: relative;top:100px;left: 100px;border-radius: 50%;
            border: 3px solid #666666;display: inline-block}
        .innerLeft{height: 178px;width: 89px;position: absolute;top: 1px;left: 1px;border-radius: 178px 0 0 178px
                ;border-bottom: 10px solid #009bff;border-top: 10px solid #009bff;border-left: 10px solid #009bff;background: white
                ;transform-origin: 100% 50%;}
        .innerRight{height: 178px;width: 89px;position: absolute;top: 1px;right: 1px;border-radius:0 178px  178px 0
            ;border-bottom: 10px solid #009bff;border-top: 10px solid #009bff;border-right: 10px solid #009bff;background: white;transform-origin: 0 50%;
            transform: rotate(-180deg) ;}
        .cover{position: absolute;height: 200px;width: 100px;border-radius: 198px 0 0 198px;background: white;z-index: 1}
        input{position: absolute;top: 60px;left: 120px;}
        span{height: 20px;width: 80px;line-height: 20px;display: block;position: absolute;;top: 90px;
            z-index: 2; left: 60px;font-size: 16px;font-weight: bold;text-align: center}
    </style>
</head>
<body>
    <div class="hour">
        <div class="innerLeft"></div>
        <div class="cover"></div>
        <div class="innerRight"></div>
        <span></span>
    </div>
    <div class="minute">
        <div class="innerLeft"></div>
        <div class="cover"></div>
        <div class="innerRight"></div>
        <span></span>
    </div>
    <div class="second">
        <div class="innerLeft"></div>
        <div class="cover"></div>
        <div class="innerRight"></div>
        <span></span>
    </div>

    <script>
        window.onload=function(){
            function roll(progress,n) {
                innerLeft = document.querySelector(‘.‘+this.className + ‘ .innerLeft‘);
                innerRight = document.querySelector(‘.‘+this.className +  ‘ .innerRight‘);
                span = document.querySelector(‘.‘+this.className + ‘ span‘);
                cover = document.querySelector(‘.‘+this.className + ‘ .cover‘);
                span.innerHTML = progress+‘‘+this.className;

                if (progress*n < 180) {
                    console.log(this.className);
                    cover.style.display = ‘block‘;

                    innerLeft.style.transform = ‘rotate(‘ + (progress*n) + "deg)";
                    innerRight.style.transform = ‘rotate(‘ + (progress*n - 180) + ‘deg)‘;
                }
                else{
                    console.log(this.className);
                    cover.style.display = ‘none‘;

                    innerLeft.style.transform = ‘rotate(‘ + (progress*n) + "deg)";
                    innerRight.style.transform = ‘rotate(0deg)‘;
                }
            }
            var T=setInterval(function(){
                var time=new Date();
                var hours=time.getHours();
                var minutes=time.getMinutes();
                var seconds=time.getSeconds();
                var hour=document.querySelector(‘.hour‘);
                var minute=document.querySelector(‘.minute‘);
                var second=document.querySelector(‘.second‘);

                roll.call(hour,hours,30);
                roll.call(minute,minutes,6);
                roll.call(second,seconds,6);
            },1000);

        }
    </script>
</body>
</html>

在编程过程中向使用tansform 来实现动态效果,但是会出现归零时逆向,最后就没有使用,接下来还是去探索一下吧。

时间: 2024-12-09 13:21:10

javascript 通过面向对象编写圆形数字时钟的相关文章

JavaScript 在页面上显示数字时钟

显示一个钟表 <html> <head> <script type="text/javascript"> function startTime() { var today=new Date() var h=today.getHours() var m=today.getMinutes() var s=today.getSeconds() // add a zero in front of numbers<10 m=checkTime(m) s=

一款纯JavaScript的圆形电子时钟

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>一款纯JavaScript的圆形电子时钟丨

中国MOOC_面向对象程序设计——Java语言_第2周 对象交互_1有秒计时的数字时钟

第2周编程题 查看帮助 返回 第2周编程题,在课程所给的时钟程序的基础上修改 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数提交答案,系统将取其中的最高分作为最终成绩. 1 有秒计时的数字时钟(10分) 题目内容: 这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成.但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,

有秒计时的数字时钟(MOOC面向对象程序设计--Java语言)

有秒计时的数字时钟 题目内容: 这一周的编程题是需要你在课程所给的时钟程序的基础上修改而成.但是我们并不直接给你时钟程序的代码,请根据视频自己输入时钟程序的Display和Clock类的代码,然后来做这个题目. 我们需要给时钟程序加上一个表示秒的Display,然后为Clock增加以下public的成员函数: public Clock(int hour, int minute, int second); 用hour, minute和second初始化时间. public void tick();

Javascript的面向对象基础

今天学习了一些关于javascript面向对象的基础,之前在网上也陆续接触过一些,不过都感觉理解的不够透彻,所以今天做一个小结. 首先javascript的面向对象还要从何为对象说起,所谓对象可以看作是一个黑盒子,你并不清除它内部实现功能的原理,但是你只要了解它是如何使用的,并且能够用它自带的功能完成自己想要做的事情,基本上来说这就是面向对象的思想.其实面向对象的思想生活中随处可见,电视机,电冰箱,空调等等,都可以看作是对象,拿一般人来说,无需知道它们的工作原理,但只要按说明书去使用即可. 回归

轻松学习JavaScript十三:JavaScript基于面向对象之继承(包含面向对象继承机制)

一面相对象继承机制 今天算是什么都没干,尽在了解面向对象三大特性之一的继承了,过去的学习的C++和C#都是正统的面向对象语 言,学习的时候也没有怎么深入了解过,只是简单的学习最基础的继承.下午在看继承机制的时候,看到一个很经典 的继承机制实例.这个实例使用UML很好的解释了继承机制. 说明继承机制最简单的方式是,利用一个经典的例子就是几何形状.实际上,几何形状只有两种,即椭圆形(是圆 形的)和多边形(具有一定数量的边).圆是椭圆的一种,它只有一个焦点.三角形.矩形和五边形都是多边形的一种, 具有

前端作品一之——网页数字时钟制作

1.制作前准备 在素材网上挑选你喜欢的0~9的数字图片,下载下来,用PS将这些图片切成合适在网页上显示的的大小(我切成50px*60px). 2.布局 在HTML将这几张图片引用进去,并排显示,并在每两个中间加上“:”,将包含图片标签的DIV设置成居中. 3.功能实现 将初始的图片显示都设置成数字0,这时在静态页面上会显示“00:00:00”:因为之前已经给图片命名为0~9.png通过getHours().getMinutes().getSeconds()分别获取时分秒这六个数值(需要注意的是当

Css3+jQuery打造的一款带动画效果的数字时钟

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Css3+jQuery打造的一款带动画效果的数字时钟丨任E行F9行车记录仪|gopro官网|电影院座椅|</title> <style type="text/css&quo

JS框架_(Vue.js)带有星期日期的数字时钟

数字时钟效果: <!doctype html> <html> <head> <meta charset="utf-8"> <title>vue.js带有星期日期的数字时钟代码</title> <style> html, body { height: 100%; } body { background:#C7C7C7; } p { margin: 0; padding: 0; } #clock { fon