JavaScript30 - 2.JS + CSS Clock

❤️ javascript30是一系列的视频教程,旨在30天编写30个前端小项目。 这些项目不需要使用其他lib,不需要编译,不需要模板,回归最纯真的JavaScript;

? ? ?

? 写在前面: 我是从NodeJs转向前端开发的,并且才半年时间左右,而且这半年更多的是进行React和Angular相关的开发,所以有很多前端基础知识,比如HTML5和CSS3的新特性使用的并不好,通过这个系列的学习,可以更好的掌握基础知识;
这是这个系列的第二篇

项目代码同步更新在男同交友网

项目简介

使用原生的JS和CSS,完成如下的时钟效果

新知识点复习(附链接)

CSS

代码实践

这个项目的核心在与算时针、分针和秒针的角度

这里我发现了作者提供的代码中的一些不足,视频中算分针和时针偏移的时候应该是出现了一些错误;

我修改后的版本:

  • 秒针的度数就等于当前秒数
const now = new Date();
const seconds = now.getSeconds();

// +90表示0秒时,秒针指向的为90度
const secondsDegrees = ((seconds / 60) * 360) + 90;复制代码
  • 分针的度数等于当前分钟数加上秒数的偏移量
const mins = now.getMinutes();
const minsDegrees = ((mins / 60 + seconds / (60 * 60)) * 360) + 90;复制代码
  • 时针的度数 等于当前小时数加上分钟和秒钟的偏移量
const hour = now.getHours();
const hourDegrees = ((hour / 12 + mins/720 + seconds /(12 * 60 * 60)) * 360) + 90;复制代码

完整代码:

const secondHand = document.querySelector('.second-hand');
const minsHand = document.querySelector('.min-hand');
const hourHand = document.querySelector('.hour-hand');

function setDate() {
  const now = new Date();
  console.log(now)
  const seconds = now.getSeconds();
  const secondsDegrees = ((seconds / 60) * 360) + 90;
  secondHand.style.transform = `rotate(${secondsDegrees}deg)`;

  const mins = now.getMinutes();
  const minsDegrees = ((mins / 60 + seconds / (60 * 60)) * 360) + 90;
  minsHand.style.transform = `rotate(${minsDegrees}deg)`;

  const hour = now.getHours();
  const hourDegrees = ((hour / 12 + mins/720 + seconds /(12 * 60 * 60)) * 360) + 90;
  hourHand.style.transform = `rotate(${hourDegrees}deg)`;
}

setInterval(setDate, 1000);复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值