Javascript のみを使用して実装されたアナログ時計の良い例を探していたときに、 Raphaëlと呼ばれる非常に堅牢な Javascript ライブラリを使用して、Emanuele Feronato によって書かれたこの興味深い時計を見つけました。
私はしばらくそれをいじっていましたが、おそらく異なるタイムゾーンに応じて、それらの異なる時刻を持つ複数の時計を持ちたいと思っていましたが、ここではそうではありません.
そこで私がしたことは、別々のクロック オブジェクトを作成し、異なる時間を設定することでした。それは機能しましたが、スクリプトが 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 部分については、動的クロック タグを作成し、それらすべてをHTML ドキュメントの本文に存在するタグ<div>
の 1 つに追加します。<div>
ありがとう。