Javascript模拟时钟时针不工作,而其他指针工作



我有一个用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)

最新更新