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

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

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

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

JavaScript

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

CSS

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

Q&A

解決済

1回答

731閲覧

ハンバーガーメニューのリストを表示したい

退会済みユーザー

退会済みユーザー

総合スコア0

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

JavaScript

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

CSS

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

0グッド

0クリップ

投稿2021/01/19 03:44

現在、ハンバーガーメニューの三本線は表示できたのですが、
押してもxに切り替わるだけで、表示したいメニューが表示できません。

ruby:/index.scss

1@media screen and (max-width: 1199px) { 2 .hamburger { 3 display: block; 4 position: absolute; 5 right: 10px; 6 top: 10%; 7 width: 50px; 8 height: 80px; 9 cursor: pointer; 10 &.active span:nth-of-type(1) { //クリックしたら☓ボタンになるように切り替え真ん中の線を消して、上下の線を☓にする。 11 transform: rotate(45deg); 12 top: 20px; 13 } 14 &.active span:nth-of-type(2) { //真ん中の線を透過 15 width: 0; 16 left: 50%; 17 } 18 &.active span:nth-of-type(3) { 19 transform: rotate(-45deg); 20 top: 20px; 21 } 22 } 23 24 nav { 25 display: none; //ブラウザが縮小した時に消去 26 position: fixed; 27 top: 0px; 28 right: -200px; 29 width: 180px; 30 height: 100%; 31 padding: 40px 30px 0 0; 32 opacity: 0; 33 transition: 0.4s; 34 visibility: hidden; 35 background-color: #ddd; 36 text-align: center; 37 z-index: -1; 38 &.active { 39 opacity: 1; 40 visibility: visible; 41 right: 0; 42 } 43 } 44 45 .nav-button { 46 display: inline-block; 47 position: relative; 48 width: 30px; 49 height: 26px; 50 51 span { //三本線の幅など 52 display: inline-block; 53 position: absolute; 54 left: 0; 55 width: 100%; 56 height: 4px; 57 background-color: #fff; 58 59 &:nth-of-type(1) { 60 top: 0; 61 } 62 63 &:nth-of-type(2) { 64 top: 11px; 65 } 66 67 &:nth-of-type(3) { 68 bottom: 0; 69 } 70 } 71 } 72}

上記該当のscssになります。

ruby:/index.html.haml

1.Main 2 .Main__header 3 .Main__header__nav 4 %h1 エンジニアのための本 5 .hamburger 6 .nav-button 7 = link_to "" 8 %span 9 %span 10 %span 11 %nav 12 %ul.menu 13 %li 14 フロントエンド 15 %ul.sub 16 %li 17 = link_to "①HTML", card_category_path(:card_id ,1) 18 %li 19 = link_to "②CSS", card_category_path(:card_id, 2) 20 %li 21 = link_to "③Javascript", card_category_path(:card_id, 3) 22 %li 23 バックエンド 24 %ul.sub 25 %li 26 = link_to "④Java", card_category_path(:card_id, 4) 27 %li 28 = link_to "⑤PHP", card_category_path(:card_id, 5) 29 %li 30 = link_to "⑥Python", card_category_path(:card_id, 6) 31 %li 32 = link_to "⑦Ruby", card_category_path(:card_id, 7) 33 = form_with(url: search_cards_path, local: true, method: :get, class: "search-top") do |f| 34 = f.text_field :keyword, placeholder: "検索", class: "search-top" 35 = f.submit "検索", class: "search-top"

このようになっています。

javascriptは

ruby:/hamburger.js

1document.addEventListener('DOMContentLoaded', function() { 2 document.getElementsByClassName("hamburger")[0].addEventListener('click', function() { 3 this.classList.toggle("active"); 4 document.getElementsByClassName("sub")[0].classList.toggle("active"); 5 }) 6});

三本線からXに変わるまでは実装できています。
しかし、1HTMLなどを表示したいのですが、表示できない状態です。
お願いい致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

試してみてませんが、document.getElementsByClassName("sub")document.getElementsByTagName("nav")ではないでしょうか。

投稿2021/01/19 09:21

Lhankor_Mhy

総合スコア36960

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

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

退会済みユーザー

退会済みユーザー

2021/01/19 11:39

お返事ありがとうございます。 試してみましたが、やはり変わらずでございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問