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

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

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

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

324閲覧

ハンバーガーメニューのボタンをクリックして×にしたい

yudai1107

総合スコア12

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2022/05/12 07:52

1やりたいこと
現在ハンバーガメニューを作成しようとしています。
その中でボタンの枠内にあるボタンを×にしたいのですが、ボタンが反応せず困っています。

2苦戦していること
最初は右も左もわからなかったのでサイトを参考にさせていただきながら、どうやって動いているのかを確認していました。
一部分を書き換えることでどのように動くか確認がしたかったのですが、動きがなくなってしまいました。
【具体的に変更した部分】
①bodyのすぐ下にあるdivをdiv class="hamberger-button"としたこと

②初めは
$(function() { $('div').click(function(){
と記載してあったものを
$(function() {
$('hamberger-button').click(function()

というふうにdivをhamberger-buttonに書き換えたこと
(このclassに対してfunctionをかけたいと思った為)

③やっている中でhambergerの定義をしていないと思ったのでlet hamberger = document.getElementById('hambeger-button');を追加したこと

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 <link rel="stylesheet" href="stylesheet.css"> 8 <title>Document</title> 9</head> 10<body> 11 <div class="hamberger-button"> 12 <span class="bar1"></span> 13 <span class="bar2"></span> 14 <span class="bar3"></span> 15 </div> 16 17<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"> 18</script> 19<script src="js/practice.js"></script> 20</body> 21</html>

CSS

1.hamberger-button{ 2 position: relative; 3 width: 100px; 4 height: 100px; 5 border: 10px solid #444; 6 box-sizing: border-box; 7 } 8 9 /* 三本線のスタイルを決める */ 10 span { 11 display: block; 12 width: 60px; 13 height: 10px; 14 background: #444; 15 position: absolute; 16 left: 10px; 17 transition: all 0.5s ease; 18 } 19 20 /* 線の縦位置の調整 */ 21 .bar1 { 22 top: 12.5px; 23 background-color: blue; 24 } 25 .bar2 { 26 top: 35px; 27 background-color: yellow; 28 } 29 .bar3 { 30 bottom: 12.5px; 31 background-color: red; 32 } 33 34 /* 35 ハンバーガーメニューがクリックされたら 36 上の線を真ん中に移動させて45℃回転 37 */ 38 .bar1.open { 39 top: 35px; 40 transform: rotate(45deg); 41 } 42 /* 43 ハンバーガーメニューがクリックされたら 44 真ん中の線は透明化して見えないようにする 45 */ 46 .bar2.open { opacity: 0; } 47 48 /* 49 ハンバーガーメニューがクリックされたら 50 下の線は真ん中に移動させて-45℃回転 51 */ 52 .bar3.open { 53 top: 35px; 54 transform: rotate(-45deg); 55 }

jQuery

1let hamberger = document.getElementById('hambeger-button'); 2 3$(function() { 4 $('hamberger-button').click(function() { 5 $('.bar1, .bar2, .bar3').toggleClass('open'); 6 }) 7});

3自分でやってみたこと
・console.logを使ってファイルが反応しているかどうかを試した
・hambeger-buttonに違うid名を設定してjQueryを書き換えた。
・ネットで動かない原因を調べた

4何が知りたいか
①どうやったらこのボタンが作動するのか。
②①のためには自分には何の知識が足りていないのか。

よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

js

1// $('hamberger-button').click(function() { 2// ↓クラスをあらわすドットが足りない 3 $('.hamberger-button').click(function() { 4 $('.bar1, .bar2, .bar3').toggleClass('open'); 5 })

https://jsfiddle.net/0236svu9/


②①のためには自分には何の知識が足りていないのか。

HTML/CSSの知識、記述ミスの特定経験などがあると良いと思います。
(たくさんミスしてたくさん直すと間違えやすい箇所が特定しやすくなります)

投稿2022/05/12 10:05

kei344

総合スコア69407

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

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

yudai1107

2022/05/12 10:22

ありがとうございます。 こちら解決しました! きっとこういった細かい部分の積み重ねなのですね。 少しずつ頑張ります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問