🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

JavaScript

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

jQuery

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

HTML

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

Q&A

解決済

1回答

2946閲覧

スマホでハンバーガーメニューがスクロールできない

shunsaku87

総合スコア39

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

JavaScript

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

jQuery

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

HTML

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

0グッド

0クリップ

投稿2020/12/07 06:37

編集2020/12/07 07:05

前提・実現したいこと

問題のサイト
このサイトなんですが、デベロッパーツールでスマホの見た目をエミュレートしたときは、ハンバーガーメニューを開くと縦にスクロールできるのですが、iphoneで見るとハンバーガーメニュー自体が固定されてしまって、縦にスクロールできません。下の方が見切れてしまいます。縦にスクロールできるようにしたいです。できれば一番したにきたときにはバウンドするようにもしたいです。

該当のソースコード

上記リンクに該当のサイトがありますので、お手数ですが、デベロッパーツールでコード見て頂きたいのですが、一応該当する部分のコードを貼りつけておきます。

html

1<header class="sp"> 2 <img src="img/index/header_sp.png" class="main top-key-p" alt="" /> 3 <img class="top-schedule-sp" src="img/index/schedule_sp.png" alt="" /> 4 <a href="./#top"> 5 <img src="img/common/logo_sp.png" class="logo_sp" alt="" /> 6 </a> 7 <img src="img/common/open.png" class="nav_btn" alt="" /> 8 <nav class="gnav_sp sp"> 9 <ul> 10 <a href="./"><li><span class="nav_main">トップ</span><br /><span class="nav_sub">TOP</span></li></a> 11 <a href="about.html"><li><span class="nav_main">当院について</span><br /><span class="nav_sub">ABOUT</span></li></a> 12 <a href="case.html"><li><span class="nav_main">よくある症状</span><br /><span class="nav_sub">CASE</span></li></a> 13 <a href="./#schedule"><li><span class="nav_main">診療時間のご案内</span><br /><span class="nav_sub">SCHEDULE</span></li></a> 14 <a href="about.html#access"><li><span class="nav_main">アクセス</span><br /><span class="nav_sub">ACCESS</span></li></a> 15 </ul> 16 <a href="tel:0527767511"> 17 <img src="img/common/sp_tel.png" alt="tel" /> 18 </a> 19 <a href="https://majima.mdja.jp" target="_blank"><img src="img/common/sp_link.png" alt="web予約" /></a> 20 21 </nav> 22 </header>

css

1header .logo_sp { 2 position: fixed; 3 top: 0; 4 left: 0; 5 opacity: 0.95; 6 z-index: 10000; 7 8 } 9 header .nav_btn { 10 position: fixed; 11 top: 0; 12 right: 0; 13 z-index: 12000; 14 /* display: none; */ 15 width: 17vw; 16 } 17 header img.main { 18 padding-top:62px; 19 } 20 header img.main.top-key-p{ 21 padding-top:0; 22 } 23 .gnav_sp { 24 position: fixed; 25 /* top: 60px; */ 26 top: 17vw; 27 width: 100%; 28 background: linear-gradient(to bottom, #1156A9, #3DCAEA); 29 z-index: 9000; 30 display: none; 31 padding-bottom:130px; 32 /* height:100vh; */ 33 height: calc(100vh - 17vw); 34 overflow-y: scroll; 35 -webkit-overflow-scrolling: touch; 36 } 37 .gnav_sp img { 38 display: block; 39 width: 90%; 40 margin: 0 auto; 41 text-align: center; 42 padding: 10px 0 10px 0; 43 } 44 .gnav_sp a img { 45 /* padding-top: 50px; */ 46 padding-bottom: 10px; 47 } 48 .gnav_sp ul { 49 margin: 0; 50 padding: 0; 51 width: 100%; 52 53 } 54 .gnav_sp li { 55 list-style: none; 56 margin: 10px; 57 padding: 0; 58 text-align: left; 59 border-bottom: 1px solid #ffffff; 60 padding-bottom:10px; 61 } 62 .gnav_sp li:nth-of-type(1) { 63 margin-top: 0; 64 padding-top: 20px; 65 } 66 .nav_main { 67 color: #ffffff; 68 font-size: 115%; 69 } 70 .nav_sub { 71 color: #dddddd; 72 }

js

1<script type="text/javascript"> 2 $(function() { 3 4 5 $(window).on("load", function() { 6 var h = $(".logo_sp").height(); 7 $(".nav_btn").height(h); 8 $(".nav_btn").show(); 9 }); 10 11 $(".nav_btn").on("click", function(){ 12 $(".gnav_sp").slideToggle(); 13 $('html').toggleClass('scroll-prevent') // 追記 14 if($(".nav_btn").attr("src") == "img/common/open.png") { 15 $(".nav_btn").attr("src", "img/common/close.png"); 16 } else { 17 $(".nav_btn").attr("src", "img/common/open.png"); 18 } 19 }); 20 21 $(".gnav_sp a").on("click", function() { 22 $(".gnav_sp").hide(); 23 }); 24 }); 25 </script>

試したこと

cssでgnav_spをoverflow:auto;にしてみたり、height:100%;にしたりしてみました。しかしだめでした。
overflow-y:scroll;となっているのでスクロールするはずなのですが、固定されてしまいます。

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

どなたかわかる方いらっしゃいましたら、教えてください。よろしくお願いいたします。
追記します。
上記cssコード以外のところで、

css

1.scroll-prevent { 2 /*動き固定*/ 3 position: fixed; 4 /*奥行きを管理*/ 5 z-index: -1; 6 /*下2つで背景を元のサイズのまま表示することができる*/ 7 width: 100%; 8 height: 100%; 9 }

としています。ハンバーガーメニューのボタンをクリックするとhtmlタグにこのscroll-preventをjsでクラスがつくようになっています。ハンバーガーメニューを開いたときに背景のコンテンツ部分がスクロールされないようにするためです。

html要素全体がスクロールできなくなるので、ハンバーガーメニュー自体もスクロールできないのでしょうか。
だとしたら、背景をスクロールさせずにハンバーガーメニューだけスクロールできるようにするにはどうしたらよいでしょうか。

わかる方いらっしゃったらよろしくお願い致します。

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました。

heightを低くし、paddingを大きくしたら、スクロールできるようになりました。

ありがとうございました。

投稿2020/12/07 07:53

shunsaku87

総合スコア39

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問