[JavaScript] ちょっとわかりにくいけど割りと短めのコードでカウントダウンタイマー作った

  • このエントリーをはてなブックマークに追加

JSでちょっと変態なコードでカウントダウンタイマー作りました。
毎秒更新されて、指定の日時までをカウントダウンする仕様。
特にわかりにくくするつもりはなかった。ついカッとなってやった。後悔はしていない。

ソースコードは下記。年明けをターゲットにしています。jQuery使用。
[javascript]
$(function(){
var $timeLeft = $("#TimeLeft");
var endDateTime = new Date("January 1,2013 00:00:00");
(function() {
var startDateTime = new Date();
var s, m, h, d = (endDateTime – startDateTime) / 1000 | 0;
d /= (s = d % 60 | 0, d -= s, 60);
d /= (m = d % 60 | 0, d -= m, 60);
d = (h = d % 24 | 0, d -= h, d / 24 | 0);
$timeLeft.text(d+’日’+h+’時間’+m+’分’+s+’秒’);
window.setTimeout(arguments.callee, 1000);
})();
});
[/javascript]

HTMLのどこかにTimeLeftってidの要素を置いてくだされ。
[html]
<div id="TimeLeft"></div>
[/html]

動作品はこちら

ちなみにターゲット日時すぎると、各数字がマイナスになって減少していきますw
ご自由にお使い下さい。

追記:arguments.calleeは非推奨

arguments.calleeってstrictモードだと禁止されてるんですね。
以下のまとめを読むと、環境に影響する危険性があるからってことですかねー。フーム。結局名前付けりゃいいだけですが。
arguments.calleeがstrictモードで禁止な理由 – Togetter

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。




コメントを残す