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

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

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

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

HTML

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

CSS

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

Q&A

解決済

1回答

256閲覧

HTML Javascript web用とスマホ用の画面切り替えについて

fantastic

総合スコア14

JavaScript

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2018/11/09 14:43

前提・実現したいこと

HTML Javascript web用とスマホ用の画面切り替えについてです。
専門学校の課題で学校祭についてのホームページ作成がだされました。
こんな感じで作りたいのですが
WEB
イメージ説明
スマホ
イメージ説明
汚くてすみません、、
まだ習いたてでjavascriptを使いこなせなくて悩んでおります。
現在使用してるのが、クリックしたらクラス名を変えるスクリプトを使っていますが、
WEB版に切り替わるとき(pxが798px超えたら)@media screen での中身の処理で
どのようにすれば画像通りに左右に振り分けられますか?

スマホ版をもとに作りたいので、
B
A
B
A
B
A

B  |A
B  |A(見えない)
B  |A(見えない)

こんな感じにfloat させたいです。
もとから直したほうがいいならその書き方もぜひ教えてください!

発生している問題・エラーメッセージ

特になし

該当のソースコード

HTML

1<!DOCTYPE html> 2<html lang="jp"> 3 4<head> 5 <link rel="stylesheet" href="css/style.css"> 6 <script type="text/javascript" src="js/ren.js"></script> 7 <meta charset="UTF-8"> 8<body> 9 <div class="container"> 10 <div class = "main-wrapper"> 11 12 <div id="a" >いべんと1</div> 13 <div id="divA" >contentA A A A A A A A</div> 14 15 <div id="b" >いべんと2</div> 16 <div id="divB" >contentB B B B B B B B</div> 17 18 <div id="c" >iイベント3</div> 19 <div id="divC">contentC C C C C C C C</div> 20 21 <div id="d" >イベント4</div> 22 <div id="divD">contentA A A A A A A A</div> 23 </div> 24 25 26 </div> 27 28 29</body> 30</head> 31 32</html> 33

javascript

1function clickSwitch() { 2 'use strict'; 3 var isA = 0; // 現在地判定 4 var btnA = document.getElementById('a'); 5 var btnB = document.getElementById('b'); 6 var btnC = document.getElementById('c'); 7 var btnD = document.getElementById('d'); 8 9 10 var divA = document.getElementById('divA'); 11 var divB = document.getElementById('divB'); 12 var divC = document.getElementById('divC'); 13 var divD = document.getElementById('divD'); 14 15 16 function setState(isA) { 17 btnA.className = (isA == 0) ? 'btn inactive' : 'btn'; // Aのとき非表示 18 divA.className = (isA == 0) ? 'boxDisplay' : 'boxNone'; // Aのとき表示 19 btnB.className = (isA == 1) ? 'btn inactive' : 'btn'; // Bのとき非表示 20 divB.className = (isA == 1) ? 'boxDisplay' : 'boxNone'; // Bのとき表示 21 btnC.className = (isA == 2) ? 'btn inactive' : 'btn'; // Cのとき非表示 22 divC.className = (isA == 2) ? 'boxDisplay' : 'boxNone'; // Cのとき表示 23 btnD.className = (isA == 3) ? 'btn inactive' : 'btn'; // Dのとき非表示 24 divD.className = (isA == 3) ? 'boxDisplay' : 'boxNone'; // Dのとき表示 25 26 27 } 28 setState(0); 29 30 btnA.addEventListener('click', function(){ 31 if (isA == 0) return; 32 isA = 0; 33 setState(0); 34 }); 35 btnB.addEventListener('click', function(){ 36 if (isA == 1) return; 37 isA = 1; 38 setState(1); 39 }); 40 btnC.addEventListener('click', function(){ 41 if (isA == 2) return; 42 isA = 2; 43 setState(2); 44 }); 45 46 btnD.addEventListener('click', function(){ 47 if (isA == 3) return; 48 isA = 3; 49 setState(3); 50 }); 51 52 53 }; 54 document.addEventListener("DOMContentLoaded", clickSwitch, false);

CSS

1 2.btn:hover { 3 opacity: .8; 4} 5 6 7.inactive { 8 opacity: .5; 9} 10 11.inactive:hover { 12 opacity: .5; 13 cursor: default; 14 15} 16 17/*ここで消してる*/ 18.boxDisplay { 19 display: block; 20 21} 22.boxNone { display: none; } 23 24 25 26 27 28 29 30

試したこと

float を使ってみたのですが、
クリックされるごとにクラス名が変更されてむりでした

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

若干見当違いかもしれませんが、いわゆるレスポンシブレイアウトなどにしたいのであればフレームワークを使うのが早いかもしれません。
Angular Vue.js React Next.jsなど
学習コストと時間を考えていけそうなら使ってみて下さい。

投稿2018/11/09 18:21

teikoku-penguin

総合スコア314

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問