我有一个用javascript代码构建的模拟时钟。秒针和分针工作得很好,但是时针却不能工作。有人知道为什么吗?
const deg = 6;
const degHR = 30;
const hr = document.querySelector("#hr");
const mn = document.querySelector("#mn");
const sc = document.querySelector("#sc");
setInterval(() => {
let day = new Date();
let hh = day.getHours() * degHR;
let mm = day.getMinutes() * deg;
let ss = day.getSeconds() * deg;
hr.style.transform = `rotateZ(${hh+(mm/12)} deg)`;
mn.style.transform = `rotateZ(${mm}deg)`;
sc.style.transform = `rotateZ(${ss}deg)`;
getHours()
方法以24小时格式返回小时。您可能想要调整相应的行如下:
let hh = ((day.getHours() % 12) + day.getMinutes()/60) * degHR;
let mm = day.getMinutes() * deg;
let ss = day.getSeconds() * deg;
hr.style.transform = `rotateZ(${hh}deg)`;
mn.style.transform = `rotateZ(${mm}deg)`;
sc.style.transform = `rotateZ(${ss}deg)`;
特别要注意deg
之前删除的空格!
我怀疑,因为它是唯一一个具有分数度数的。尝试将(mm/12)
更改为Math.round(mm/12)
。