質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

501閲覧

タブ切り替えを自動化し時間設定をつけたい

karou_haru

総合スコア2

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2021/11/05 05:20

前回こちらで質問させて頂き解決したのですが、問題がまた浮上してきましてまたご質問させてください。
商品の紹介ページで4日の商品・5日の商品・6日の商品…をタブで切り替えで閲覧できるようになっています。

5日の18時がきたら→5日のtab_btn と tab_panelを表示させ、他の日にちのボックスを非表示
6日の18時がきたら→6日のtab_btn と tab_panelを表示させ、他の日にちのボックスを非表示
の仕組みです。

これをjava Scriptで自動化させたいのですが、記述の仕方がわかりません。
前回質問させて頂いた時に毎日18時がきたら切り替わるように改良して頂きましたが、
2・3日おきの更新もありますので時間日にちを詳細に設定したいです。

【○日18時に、tab_btnとtab_panelのクラス名にactiveを追加して、他の日付を非表示に】
【△日18時に、tab_btnとtab_panelのクラス名にactiveを追加して、他の日付を非表示に】
と細かく指定したいです。
どうかお力を貸してください。宜しくお願い致します。

<style> .tab_box .tab_panel { display:none; } .tab_box .tab_panel.active { display:block; } .tab_box .btn_area { margin-top: 0; margin-left: 0px; margin-bottom: 0; display: -webkit-box; display: flex; } </style> <div class="tab_box"> <div class="btn_area"> <p class="tab_btn active">11/4<br>発売</p> <p class="tab_btn">11/5<br>発売</p> <p class="tab_btn">11/6<br>発売</p> <p class="tab_btn">11/7<br>発売</p> <p class="tab_btn">11/8<br>発売</p> </div> <div class="panel_area"> <!--★★★ 11/4商品★★★--> <div class="tab_panel active"> その日の内容 </div> <!--★★★ 11/5商品★★★--> <div class="tab_panel "> その日の内容 </div> <!--★★★ 11/6商品★★★--> <div class="tab_panel "> その日の内容 </div> </div> </div> <script> $('.tab_box .tab_btn').click(function() { var index = $('.tab_box .tab_btn').index(this); $('.tab_box .tab_btn, .tab_box .tab_panel').removeClass('active'); $(this).addClass('active'); $('.tab_box .tab_panel').eq(index).addClass('active'); }); </script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lhankor_Mhy

2021/11/05 05:29

その指定はどういうデータで設定されているのですか?
karou_haru

2021/11/05 05:32

その指定をするjava scriptの記述方法がわからないので、質問させて頂きました これで答えになってますでしょうか?
Lhankor_Mhy

2021/11/05 05:41

うーん…… なんというか、ご質問があいまいなので、入力を見れば「どうしたい」というのが想像つくかな、と思ったんですよね。 とりあえず適当にやってみますか。
karou_haru

2021/11/05 05:51

説明が下手ですみません。 ざっくりいうと○日の18時に、該当の内容のクラス名にactiveを追加する、を手動でやっていたので、これを自動化したいのです。
Lhankor_Mhy

2021/11/05 05:58

前の質問に回答した者です。それは理解してますよ。
guest

回答1

0

ベストアンサー

こんな感じでしょうか。
days.jsを使っています。
サンプルを置いておきます。
https://jsfiddle.net/Lhankor_Mhy/ecau7k1j/1/

js

1var setting = [ 2 { 3 start: '2021-11-04 18', 4 end: '2021-11-05 18', 5 day: '11/4' 6 }, 7 { 8 start: '2021-11-05 18', 9 end: '2021-11-06 18', 10 day: '11/5' 11 }, 12 { 13 start: '2021-11-06 18', 14 end: '2021-11-08 18', 15 day: '11/6' 16 }, 17] 18 19dayjs.extend(window.dayjs_plugin_isBetween) 20 21setting.forEach(x => { 22 if (dayjs().isBetween(dayjs(x.start, 'YYYY-MM-DD HH'), dayjs(x.end, 'YYYY-MM-DD HH'))) { 23 $('.tab_box .tab_btn:contains("' + x.day + '")').click() 24 } 25})

投稿2021/11/05 06:49

Lhankor_Mhy

総合スコア36960

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問