JavaScript 02 — JS and CSS Clock

实现效果

利用JS设置transform:rotate()来实现时钟指针旋转效果。

<script>
// 1、先设置定时器 1000毫秒执行一次
// 2、先确定指针和旋转角度的关系 再获取秒数、秒针旋转角度 最后获取秒针实现旋转
// 秒针:走一圈360度,60秒,即 360/60=6度 
// 分针:走一圈360度,60分钟,即 360/60=6度 
// 时针:走一圈360度,12个小时,即 360/12=30度


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

function setDate() {
  const now = new Date()

  const seconds = now.getSeconds()
  const secondsDegrees = (seconds * 6) + 90
  // css样式默认是旋转了90度,所以指针的默认位置在九点而不在零点,+90就回到了零点的位置
  secondHand.style.transform = `rotate(${secondsDegrees})deg`

  const mins = now.getMinutes()
  const minsDegrees = (mins * 6) + 90
  minHand.style.transform = `rotate(${minsDegrees})deg`

  const hours = now.getHours()
  const hoursDegrees = (hours * 30) + ((mins / 60) * 30) + ((seconds / 3600) * 30) + 90
  hourHand.style.transform = `rotate(${hoursDegrees})deg`
  console.log(`${hours}时 + ${mins}分 + ${seconds}`)
}

setInterval(setDate, 1000)

setDate() //一打开页面就执行 如果不加此行代码 打卡页面会有一秒钟的卡顿 因为setInterval()回调函数是在1s后执行

</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值