アプリ版:「スタンプのみでお礼する」機能のリリースについて

JavaScript初心者です。。

JavaScriptで例えば
2013年1月1日1時11分に外部読み込みのa.cssをb.cssに
ユーザーにリロード操作を促す事無く自動で切り替えたいのですが
可能でしょうか?その場合どのようなスクリプトになりますでしょうか?

アクセス時間によって読み込みcssを切り替える方法は分かったのですが。。
2013年1月1日1時11分以前にアクセスして指定時刻まで待機した場合
リロードするまで表示が切り替わるず。。

教えていだけますと幸いです。

A 回答 (1件)

ひとつのアイデアとして、



CSSは後から読んでも、先に読んでおいても良いかと思います。
指定時間になったら、body(又は必要な要素)にクラスを設定することで、適用するスタイルを変えることが可能です。
ただし、javascriptを用いる以上、スクリプトがオフのブラウザでは何も起きません。

以下、10秒後にCSSを切替える例。
(10秒後を指定日にしてあげるようなイメージで実現できるかと)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head><title>sample</title>
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<style type="text/css">
<!--
/* Default */
body{ background-color:#fff; }
body div{
width : 200px; height : 200px;
padding : 1em;
color : #f00;
background-color : #0f0;
}

/* Type B */
body.typeB div{
color : #00f;
background-color : #ff0;
margin : 100px;
width : 150px;
border : 4px solid #f00;
}
//-->
</style>

</head>
<body>
<div>
<p>背景が緑ならTypeA、黄色ならTypeB
<p>文字の色が赤ならTypeA、青ならTypeB
</div>

<script type="text/javascript">
<!--
setTimeout(function(){ document.body.className = "typeB"; }, 10000);
//-->
</script>
</body>
</html>


>その場合どのようなスクリプトになりますでしょうか?
スクリプトとしては、body読込み直後に実行するようにしておいて、
 1)現在日時を取得
 2)指定時間までの時間を計算
 3)2の時間経過後にbodyのクラスを切り替え

あるいは、もう少し正確にやるなら
3)で1秒前くらいに日付を取得(で1)に戻る)などとして、一定誤差以内で切り替えといったような考え方も可能です。
でも、ローカルPCの時間では所詮正確とはいえないので、サーバの時刻を取得するとか(↓)みたいなサービスを利用するとか…
段々、スクリプトも複雑にはなりますけれど。

http://www2.nict.go.jp/aeri/sts/tsp/link/JST.html
    • good
    • 0
この回答へのお礼

ご丁寧にアドバイスいただきありがとうございます!!
考え方非常に参考になりました。
この考えかたで勉強しながらもう少し試行錯誤してみようと思います!

ありがとうございました。

お礼日時:2012/11/17 13:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!