JavaScript

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

JavaScript

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が危険という話を聞いて何でだろ?と思ったら、色々教わったのでツイート纏めました。
スポンサーリンク
記事を書いた人

システムえんじにゃー🐈
趣味はエレキギター、自転車など。作曲したい。
World of Warshipsやってます。
記事に関する質問はお気軽にどうぞ。

surface0 (さーふぇす)をフォローする

コメント

タイトルとURLをコピーしました