HTML+CSS+JS实现动态时钟

HTML+CSS+JS实现动态时钟

(此实例将三者都写在了一起)

step 1 先画一个圆

在body里面创建一个div

<div class="clock"></div>

在head里利用style标签设置clock的css

.clock{
   
            height: 500px;
            width: 500px;
            border-radius: 50%;
            border: 1px solid black;
            position: relative;
        }

step 2 画时钟刻度

在body里利用script标签写js代码

先对clock进行选择,才能对标签里面进行操作

var clock = document.querySelector('.clock');

每一个刻度就是一个模块,即都是一个div

有两种画刻度的方法:第一种一个一个画,第二个利用循环结构

两种方法都需要计算角度

第一种方法

以12点和1点为例,假设12的div叫做twelve,1叫one,其他数字同理
在这里插入图片描述

.twelve{
   
    top:0px;
    left:250px;/*半径的长度*/
}
.one{
   
    top: x px; /*x=250-r*cos(θ)*/
    left: 250+r*sin(θ);
}

第二种方法

循环结构

for (var i = 0; i<12 ;i++){
   
	
    }

(下面代码写在循环体内)

1.先使用createElement()创建一个元素

var scale = document.createElement('div');

2.为刻度添加数字innerText,且要注意刻度是从1开始的,且如果i为0,其实就是12,所以要增加一个条件判断

if (i === 0){
   
    scale.innerText = 12
}else{
   
    scale.innerText = i
}

3.为div设置一个属性class且命名,用来给数字定位

scale.setAttribute('class', 'scale');

4.利用坐标来定位,先确定圆心坐标,然后计算每个数字的坐标

var center = {
   
    x: 250,
    y: 250,
}
var raduis = 250px//设置半径
//定位
var alpha = i*30*Math.PI/180
            var x = center.x +raduis*Math.sin(alpha)
            var y = center.y - raduis*Math.cos(alpha)
            scale.style = `position:absolute; top: ${
     y}px; left:${
     x}px;`;//注意不是单引号是tab键上面那个符号`
            clock
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值