JSでちょっと変態なコードでカウントダウンタイマー作りました。
毎秒更新されて、指定の日時までをカウントダウンする仕様。
特にわかりにくくするつもりはなかった。ついカッとなってやった。後悔はしていない。
ソースコードは下記。年明けをターゲットにしています。jQuery使用。
$(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);
})();
});
HTMLのどこかにTimeLeftってidの要素を置いてくだされ。
<div id="TimeLeft"></div>
ちなみにターゲット日時すぎると、各数字がマイナスになって減少していきますw
ご自由にお使い下さい。
追記:arguments.calleeは非推奨
arguments.callee
ってstrictモードだと禁止されてるんですね。以下のまとめを読むと、環境に影響する危険性があるからってことですかねー。フーム。結局名前付けりゃいいだけですが。
arguments.calleeがstrictモードで禁止な理由
arguments.calleeが危険という話を聞いて何でだろ?と思ったら、色々教わったのでツイート纏めました。
コメント