時間帯毎に特定のボックス内の背景色を変更したいのですが、
スタイルシートで色を設定しておいて、html内のclassの値を変更するやり方を教えて下さい。
※スタイルシートで3種類の色を設定
.bg1 {background-color:#000000;}
.bg2 {background-color:#ff0000;}
.bg3 {background-color:#ffffff;}
※時間帯は3種類
朝(7~10時)=class="bg1"
昼(10~18時) =class="bg2"
夜(18~翌7時)=class="bg3"
※html内のボックスのクラス名を時間帯によって
class="bg1"
class="bg2"
class="bg3"
のように変更したい。
<div class="○○">このBOX内の色を時間帯毎に変更したい</div>
私はjavascriptの知識はなく、ヒント等から自分で書くことはできないので、
恐縮ですが具体的なソースをお願いできればありがたいです。
どうぞよろしくお願いします。
No.3ベストアンサー
- 回答日時:
ほとんど他の方の流用してしまいましたが、こうしてください。
<html>
<SCRIPT>
window.onload=function(){
divbgchange()
}
function divbgchange() {
dd = new Date();
hh = dd.getHours();
var tag=document.getElementById("hoge");
if (hh <= 24) tag.className="bg3"
if (hh <= 18) tag.className="bg2"
if (hh <= 10) tag.className="bg1"
if (hh <= 7) tag.className="bg3"
}
</SCRIPT>
<style>
.bg1{background-color: #000000;color:#ff0000;}
.bg2{background-color: #ff0000;color:#00ffff;}
.bg3{background-color: #ffffff;color:#0000ff;}
</style>
</head>
<body>
<div id="hoge">
あいうえお
</div>
</body>
</html>
もし、idをどうしても振りたくないというのであれば、ちょっと
面倒ですが、別のやり方もあります。
希望通りに出来ました!!
これを利用したい場所はページに1ヶ所しかないため id でも全く問題ありません。
あつかましく丸投げな要望に回答いただき本当に有難うございました。
No.2
- 回答日時:
<html>
<head>
<!-- 再読み込み時間を秒で指定↓ ->
<META HTTP-EQUIV="Refresh" CONTENT="600">
<SCRIPT>
function divtag() {
dd = new Date(); /* 日付時刻データを dd に取り込みます */
hh = dd.getHours(); /* hh に現在の時間を入れます */
tagu = "";
if (hh <= 24) {tagu = "<div class=bg3>";} /* 0~7時まで */
if (hh <= 18) {tagu = "<div class=bg1>";} /* 8~10時まで */
if (hh <= 10) {tagu = "<div class=bg2>";} /* 11~18時まで */
if (hh <= 7) {tagu = "<div class=bg3>";} /* 19~24時まで */
document.write(tagu);
}
</SCRIPT>
<style>
.bg1 {background-color: #000000;}
.bg2 {background-color: #ff0000;}
.bg3 {background-color: #ffffff;}
</style>
</head>
<body>
<script>
divtag();
</script>
あいうえお
</div>
</body>
</html>
この回答への補足
有難うございます。
NO.1様の回答への補足でも同じ事を書いたのですが、
この方法だと先頭の<div>がhtmlとして書かれていないので、
htmlの構文チェックにかけると<div>が足りないせいであちこちに構文エラーが出ます。
なんらかの理由でjavascriptが動作しなかった場合は<div>が足りないためレイアウトが崩れてしまうので、
動作しなかった場合は色が変らないだけで、htmlとしては問題のないようにしたいのですが、他に方法はないでしょうか。
javascriptの知識がないため無理なことを言っていたらすみません。汗
動作的には希望通りだったのですが、html構文が気になったので、
今回はNO.3様のを使わせていただくことにしました。
ありがとうございました。
No.1
- 回答日時:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<style type="text/css">
div {border:1px #000000 solid;}
.bg1 {background-color: #000000;}
.bg2 {background-color: #ff0000;}
.bg3 {background-color: #ffffff;}
</style>
</head>
<body>
<script type="text/javascript">
<!--
var day = new Date();
var hour = day.getHours();
if (hour>=7 && hour<10){
document.write("<div class='bg1'>");
}
else if (hour>=10 && hour<18){
document.write("<div class='bg2'>");
}
else {
document.write("<div class='bg3'>");
}
//-->
</script>
このBOX内の色を時間帯毎に変更したい
</div>
</body>
</html>
こんな感じに成ると思います。
この回答への補足
有難うございます。
せっかく教えていただいたのですが、この方法だと先頭の<div>がhtmlとして書かれていないので、
htmlの構文チェックにかけると<div>が足りないせいであちこちに構文エラーが出ます。
(もちろん実際にはscriptで<div>が書き出されるので問題はないのですが)
class="○○" の「○○」の部分だけを変更する事は無理なのでしょうか。
動作的には希望通りだったのですが、html構文が気になったので、
今回はNO.3様のを使わせていただくことにしました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSSでreadonlyの機能はあり...
-
JavaScriptのinnerHTMLの挙動に...
-
確認ダイアログを次からは表示...
-
formのsubmitを押すとモーダル...
-
SITEINFOの書き方について
-
エクセルVBAで、MsgBox やInput...
-
「ご処理進めて頂きますようお...
-
CloseとDisposeの違い
-
VBAでループ内で使う変数名を可...
-
Excelシート上のマクロを登録し...
-
エクセルで、日付を入力すると...
-
ボタンクリックイベント 重複...
-
switch の範囲指定
-
メルカリのメルカードで買い物...
-
アクセスVBAのMe!と[ ]
-
VBAにてメッセージボックスを最...
-
Do~Loopした回数をカウントしたい
-
DoEventsがやはり分からない
-
EXCEL VBA マクロ 実行する度に...
-
CStringの中から数字だけの場合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Q&A掲示板の入力フォームに文字...
-
JavascriptでDom XSSの脆弱性対...
-
【JavaScript】検索がヒットし...
-
CSSでreadonlyの機能はあり...
-
JavascriptでXSSの脆弱性への対...
-
formのsubmitを押すとモーダル...
-
確認ダイアログを次からは表示...
-
JavascriptのHTMLクラス表示に...
-
特定の条件のHTML要素を一括で...
-
jQueryでのドラッグアンドドロ...
-
javascriptで複数の表示・非表...
-
jqueryを使ったスムーススクロ...
-
jqueryアコーディオンの上部の...
-
JavaScriptのdiv.style属性の変...
-
2回目以降のページロード時には...
-
javascriptのエラーで質問です。
-
改行をしたいが、<br>と...
-
クリックすると、色が変わるよ...
-
jQueryのCSSで値に変数を使う方法
-
動画の上に広告をオーバーレイ...
おすすめ情報