この記事では、JS を使用して簡単なデジタル時計を実装する方法を主に紹介します。これを必要とする友人に共有します。
デジタル時計は画像で表示されます。現在時刻では、表示される画像のURLが時刻に応じて変化します。
a. 現在時刻 Date() を取得し、現在の時刻情報を 6 桁の文字列に変換します。置換表示 Picture;
HTMLベースを構築し、スタイルを追加します。<div id="div1"> <img src='./数字时钟(1)_files/0.jpg'> <img src='./数字时钟(1)_files/0.jpg'> : <img src='./数字时钟(1)_files/0.jpg'> <img src='./数字时钟(1)_files/0.jpg'> : <img src='./数字时钟(1)_files/0.jpg'> <img src='./数字时钟(1)_files/0.jpg'> </div>
#p1{ width:50%; margin:300px auto; background:black; }
画像要素と現在時刻を取得します:
var op=document.getElementById('p1'); var aImg=op.getElementsByTagName('img'); var oDate=new Date(); var str=oDate.getHours()+oDate.getMinutes()+oDate.getSeconds();
ここには 2 つの問題があります
1. oDate.getHours() はすべての数値を返すため、数値の加算ではなく数値の加算として記述されます。文字列の追加は追加します。
2. 取得した値が1桁の場合、文字列の数が6未満となり、当初の設計要件を満たしません。
上記の 2 つの問題を解決するコード解決策:
var op=document.getElementById('p1'); var aImg=op.getElementsByTagName('img'); var oDate=new Date(); function twoDigitsStr() { if(n<10) {return '0'+n;} else {return ''+n;} } var str=twoDigitsStr(oDate.getHours())+twoDigitsStr(oDate.getMinutes())+twoDigitsStr(oDate.getSeconds());
すべてのピクチャの src 値を設定する:
for(var i=0;i<aImg.length;i++) { aImg[i].src="./数字时钟(1)_files/"+str.charAt(i)+".jpg"; }
setInterval() を使用して、現在の時刻とピクチャの src 値を 1 秒ごとに再取得します:
var op=document.getElementById('p1'); var aImg=op.getElementsByTagName('img'); setInterval(function tick() { var oDate=new Date(); var str=twoDigitsStr(oDate.getHours())+twoDigitsStr(oDate.getMinutes())+twoDigitsStr(oDate.getSeconds()); for(var i=0;i<aImg.length;i++) { aImg[i].src="./数字时钟(1)_files/"+str.charAt(i)+".jpg"; } } ,1000);
But Still There問題は、Web ページを開くと、表示時間が 00:00:00 になることです。これは、タイマーの特性により、タイマーを開いたときに内部の関数がすぐに実行されないためです。 1秒後に実行します。解決策コード:
var op=document.getElementById('p1'); var aImg=op.getElementsByTagName('img'); function tick() { var oDate=new Date(); var str=twoDigitsStr(oDate.getHours())+twoDigitsStr(oDate.getMinutes())+twoDigitsStr(oDate.getSeconds()); for(var i=0;i<aImg.length;i++) { aImg[i].src="./数字时钟(1)_files/"+str.charAt(i)+".jpg"; } } setInterval(tick,1000); tick();
質問: コード setInterval(tick,1000); の関数 check には括弧がありません。JS で括弧のある関数と括弧のない関数の違いは何ですか?
完全なデジタル時計制作 JS コードは次のとおりです:
function twoDigitsStr(n) { if(n<10) {return '0'+n;} else {return ''+n;} } window.onload=function() { var op=document.getElementById('p1'); var aImg=op.getElementsByTagName('img'); function tick() {var oDate=new Date(); var str=twoDigitsStr(oDate.getHours())+twoDigitsStr(oDate.getMinutes())+twoDigitsStr(oDate.getSeconds()); for(var i=0;i<aImg.length;i++) { aImg[i].src="./数字时钟(1)_files/"+str.charAt(i)+".jpg"; } } setInterval(tick,1000); tick(); }
もちろん、優れたクリエイティブな写真がある場合は、上記のデジタル写真を置き換えて、さまざまなまばゆいばかりのデジタル時計効果を生成できます。例:
上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。関連する推奨事項:
js オブジェクトによく使用される拡張機能を共有する Nodejs を WeChat JS-SDK に接続するプロセス全体を共有する
以上がJS を使用して単純なデジタル時計を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。