当我在寻找一个仅使用 Javascript 实现的模拟时钟的好例子时,我发现了这个由 Emanuele Feronato 编写的有趣时钟,它使用了一个非常强大的 Javascript 库,名为Raphaël
我玩了一段时间,然后我想在这些时钟上有多个不同时间的时钟,可能是根据不同的时区,但这里不是这种情况。
所以我所做的是创建单独的时钟对象并设置不同的时间。它起作用了,但是当脚本遇到 setInterval() 函数时问题就来了,它并没有真正起作用,时钟的指针没有旋转。
我不太擅长 Javascript 内置函数,也找不到防止此问题的解决方案,无论如何我在这里发布我的代码。
function createClocks(){
/* for the time being assume these Date objects are unique */
var diffDate_01 = new Date();
var diffDate_02 = new Date();
/* create separate clock Objects */
var clok_01 = new clock(diffDate_01);
var clok_01 = new clock(diffDate_02);
/* calling update_clock function wrapped within setInterval to make the clock's hand rotatable */
setInterval("clok_01.update_clock(diffDate_01)", 1000);
setInterval("clok_01.update_clock(diffDate_02)", 1000);
}
function clock(diffDate){
/* this is the place where the base implementation of the clock stands I removed the setInterval("update_clock()",1000); because I want to call it from outside as per Object separately */
function update_clock(diffDate){
var now = diffDate;
var hours = now.getHours();
var minutes = now.getMinutes();
var seconds = now.getSeconds();
hour_hand.rotate(30*hours+(minutes/2.5), 100, 100);
minute_hand.rotate(6*minutes, 100, 100);
second_hand.rotate(6*seconds, 100, 100);
}
}
对于 HTML 部分,我正在创建动态时钟<div>
标签,并将所有这些标签附加到<div>
HTML 文档正文中存在的标签中。
谢谢。