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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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

CSS

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

Q&A

1回答

1319閲覧

ハンバーガーメニューがクリックしても出し入れできない

kiho_x

総合スコア0

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2021/12/21 14:17

編集2021/12/22 02:42

前提・実現したいこと

ハンバーガーメニューの出し入れをしたいです、その上でsliderも作用してほしいです

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

SPサイズにしたときにハンバーガーメニュー自体は出るのですが、クリックしてもメニューが出ません。PCサイズではヘッダーを横並びにしたいのですが、SPサイズに合わせてコーディングするとPCサイズにしたときにヘッダーが消えてしまいます。 ハンバーガーメニューの出し入れができるような記述をするとsliderが機能しなくなり、ただの縦並びの画像になります。

該当のソースコード

HTML

1<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> 2 <!--Jquery--> 3 4 <!--ハンバーガーメニュー--> 5 6<script src="htdocs/assets/js/common.js"></script> 7<link href="htdocs/assets/js/slick-theme.css" rel="stylesheet" type="text/css"> 8<script src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script> 9 10<!-- slickのCSS --> 11<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"> 12 13<script> 14 $(document).ready(function(){ 15 $('.slider').slick({ 16 autoplay:true, 17 autoplaySpeed:3000, 18 dots:true, 19 }); 20 }); 21 </script> 22 <script 23 src="https://code.jquery.com/jquery-3.4.1.min.js" 24 integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" 25 crossorigin="anonymous"></script> 26 27<!-- jQuery --> 28<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script> 29 30<!-- slickのJavaScript --> 31<script src="https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script> 32 33</head> 34<body> 35<header class="header"> 36 <div class="logo"> 37 <a href="index.html"><img src="htdocs/assets/images/common/logo_tsn-02.svg" alt="ロゴ" ></a> 38 </div> 39 <div id="open-button" class="open-button"> <span></span></div> 40 <nav> 41 <div id="close-button" class="close-button">×</div> 42 <ul> 43 <li><a href="first.html">はじめに</a></li> 44 <li><a href="#map">マップ</a></li> 45 <li><a href="experience.html">体験談</a></li> 46 <li><a href="inquiry.html">お問い合わせ</a></li> 47 </ul> 48 </nav> 49</header> 50<main> 51 <div class="section-top__image"> 52 <div class="swiper-container"> 53 <ul class="slider"> 54 <li><img title="岸壁の猫" src="htdocs/assets/images/top/IMG_1192.JPG" alt="岸壁の猫"></li> 55 <li><img src="htdocs/assets/images/top/IMG_1034.JPG" alt="振り向く猫"></li> 56 <li><img src="htdocs/assets/images/top/IMG_1222.png" alt="集まる猫"></li> 57 <li><img src="htdocs/assets/images/experience/IMG_1405.png" alt="公園の猫"></li> 58 </ul> 59 </div> 60 </div> 61</main> 62<footer class="footer"> 63 <nav> 64 <ul class="footer_list"> 65 <li><a href="first.html"> <img src="htdocs/assets/images/common/猫の足跡1.png" alt="猫の足跡">はじめに</a></li> 66 <li class="footer_map"><a href="#map"> <img src="htdocs/assets/images/common/猫の足跡1.png" alt="猫の足跡">猫マップ</a></li> 67 </ul> 68 69 <ul class="footer_list2"> 70 <li><a href="experience.html"> <img src="htdocs/assets/images/common/猫の足跡1.png" alt="猫の足跡">島猫体験談</a></li> 71 <li class="footer_list2_inquiry"><a href="inquiry.html"> <img src="htdocs/assets/images/common/猫の足跡1.png" alt="猫の足跡">お問い合わせ</a></li> 72 </ul> 73 </nav> 74 <div class="footer_sns_links"> 75 <div class="instagram"> <a href="https://www.instagram.com/tobishima_neko_/"> <img src="htdocs/assets/images/common/glyph-logo_May2016.png" alt="" width="50"></a> 76 <p class="instagram_discription">Instagramも随時更新!</p> 77 </div> 78 </div> 79 <a href=""><img src="htdocs/assets/images/common/logo_tsn-02.svg" alt="" width="100"></a> 80 <div> <small class="site-title">©️しまねこ</small> </div> 81</footer> 82 <p id="scroll-top"><a href="#"><img src="htdocs/assets/images/common/PAGE_UP.png" alt="ページアップ"></a></p>

CSS

1(commnon.css) 2.header { 3 display: flex; 4} 5.header img { 6 width: 100px; 7 height: 199px;/*画像サイズ指定*/ 8 margin: 0; 9 padding: 0; 10} 11.header nav { 12 display: block; 13} 14.header nav ul{ 15 list-style: none; 16 display: block; 17 margin: 70px 140px 56px 0px; 18 padding: 0; 19 font-size: 2em; 20} 21.header nav ul li{ 22 padding: 10px 10px 0 55px; 23} 24.open-button,.close-button { 25 display: none; 26} 27 28@media(max-width:1160px) { 29 .open-button { 30 display: block; 31 position: relative; 32 right: 10px; 33 top: 60px; 34 width: 40px; 35 height: 40px; 36 cursor: pointer; 37 padding-left: 55em; 38 } 39 .open-button span, .open-button span:before, .open-button span:after { 40 position: absolute; 41 height: 3px; 42 width: 25px; 43 border-radius: 3px; 44 background: #000; 45 display: block; 46 content:""; 47 } 48 .open-button span:before { 49 bottom: -8px; 50 } 51 .open-button span:after { 52 bottom: -16px; 53 } 54 .close-button { 55 display: block; 56 position: absolute; 57 top: 0; 58 right: 0; 59 color: #000; 60 font-size: 80px; 61 padding: 20px; 62 } 63 .header nav { 64 display: none; 65 z-index: 1000; 66 position: fixed; 67 top: 0; 68 left: 0; 69 background-color: #33cc99; 70 width: 70%; 71 height: 100%; 72 padding-top: 67px; 73 box-shadow: 10px 10px 25px rgba(0, 0, 0, 0.4); 74 } 75 76 .header nav ul li { 77 border-bottom: solid 1px rgba(255, 255, 255, 0.5); 78 } 79 .header nav ul li:first-child { 80 border-top: solid 1px rgba(255, 255, 255, 0.5); 81 } 82 .header nav ul li a { 83 font-weight: 600; 84 line-height: 40px; 85 vertical-align: middle; 86 text-decoration: none; 87 color: #000; 88 } 89} 90@media(min-width:1160px) { 91 .header { 92 height: 83px; 93 } 94 .header-content-wrapper { 95 max-width: 1160px; 96 margin: 0 auto; 97 position: relative; 98 } 99 .header h1 { 100 font-size: 3.2rem; 101 padding-top: 26px; 102 position: absolute; 103 left: 0; 104 font-weight: 600; 105 } 106 .header nav { 107 display: block; 108 text-align: right; 109 } 110 .header nav ul { 111 display: flex; 112 justify-content: flex-end; 113 } 114 .header nav li a { 115 display: block; 116 padding: 26px 30px 0; 117 color: #000000; 118 text-decoration: none; 119 font-size: 2.4rem; 120 height: 83px; 121 } 122} 123 124 .footer nav ul { 125 display: flex; 126 margin: 70px 40px 20px 90px; 127 padding: 0; 128} 129.footer nav ul li { 130 padding: 0 66px; 131 display: flex; 132} 133.footer nav ul { 134 padding: 0 4vw 0 8vw; 135} 136.footer_menu { 137 padding-left: 140px; 138 text-align: left; 139} 140.footer_list,.footer_list2 { 141 font-size: 2em; 142} 143.footer_inquiry { 144 margin: auto; 145 text-align: left; 146 padding-left: 40em; 147} 148.instagram { 149 display:flex; 150 padding: 4rem 0 0 54rem; 151 margin: auto; 152} 153.instagram_discription { 154 padding: 10px; 155} 156#footer_logo { 157 margin: auto; 158} 159@media (min-width: 1160px) { 160 .footer { 161 padding: 70px 0 45px; 162 } 163 .footer-content-wrapper { 164 max-width: 1160px; 165 margin: 0 auto; 166 } 167 .footer .site-map { 168 padding: 0; 169 font-weight: 400; 170 } 171 .footer .site-map li { 172 padding: 0; 173 margin-bottom: 10px; 174 } 175 .footer__copyright { 176 font-size: 2.0rem; 177 font-weight: 400; 178 } 179} 180```CSS 181(top.css) 182.slider{ 183 margin: 100px auto; 184 width: 80%; 185 list-style: none; 186} 187.slider img{ 188 height: auto; 189 width: 100%; 190} 191/*slick setting*/ 192.slick-prev:before, 193.slick-next:before { 194 color: #000; 195} 196 197 198```JS 199$('.close-button, .open-button').click(function () { 200 $('.header nav').slideToggle(); 201 });

試したこと

JSを
$(function(){
$("nav").hide();
$('.close-button,.open-button').on('click',function(){
$('nav').toggle(300);
});
});
に変えるとハンバーガーメニューが反応するようになるのですが、PCサイズでのヘッダーが消えてしまいます。

CSS
.header nav
display: none;
にするとハンバーガーメニューをクリックした後のページを出せるのですが、閉じるボタンが効きません。

実際にこのサイトに記したコードだけで自分でもテストしましたが、ハンバーガーメニューはクリックしても開かないなど正常には動いていませんでした。(SafariとGoogleChromeで検証しましたが共にダメでした。)

</body>前にscriptが含まれているものを移動するとハンバーガーメニューはクリックで出し入れできるようになったのですが、sliderが動かない、という事態になりました。

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

sliderを動かしながら、ハンバーガーメニューも表示したいです。

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

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

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

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

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

guest

回答1

0

ご提示のコードを試してみたところ、問題なく動作するようでした。

推測ですが、おそらく kiho_x さんのコードでは、ご提示の JavaScript を要素が読み込まれる前に実行しているのだと思います。
</body>の直前に書くか、$(function(){})の中に書いて読み込みを待つかしてみてはどうでしょうか。

投稿2021/12/22 01:28

Lhankor_Mhy

総合スコア36960

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問