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

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

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

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

HTML5

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

JavaScript

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

Q&A

0回答

416閲覧

ナビゲーションメニューのフルスクリーン時にスクロールできなくしたい

mammaluce

総合スコア1

CSS3

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

HTML5

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

JavaScript

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

0グッド

0クリップ

投稿2021/10/22 11:17

編集2021/10/23 10:55

ナビゲーションメニューのフルスクリーン時に、スクロールができてしまうため、回避策を教えていただけますと幸いです。

◎使用しているもの
・スクロールスナップ
・メニューバーは左側にハンバーガーメニュー、右のロゴ含めてヘッダー固定
・スクロールダウンアニメーション
※上記のスクロールダウンアニメーションがあるため、最後のセクションはスクロールダウンアニメーションを隠すように被るようにしています。

スクロールできてしまう原因は、上記の被るようにしている部分というのは理解ができるのですが、どうやっても回避ができません。

【解決したいこと】下記の2つです
◎ナビゲーションメニューを開いても、スクロールできなくなるようにしたい
◎最終セクションのプロフィールが被って、途中から上へスクロールし、戻るようにすると、上のスクロールスナップと最終セクションのプロフィールが不自然になる
イメージ説明

html

1<header class="site-header"> 2 <nav class="headerNav"> 3 <ul> 4 <li class="navItem navItemTop en"> 5 <a href="#">Top</a> 6 </li> 7 <li class="navItem navItemConcept en"> 8 <a href="#0_concept" onClick="navFuncClose()">Concept</a> 9 </li> 10 <li class="navItem navItemSitemap en"> 11 <a href="#1_sitemapt" onClick="navFuncClose()">Sitemap</a> 12 </li> 13 <li class="navItem navItemMenu en"> 14 <a href="#2_menulist" onClick="navFuncClose()">Menu</a> 15 </li> 16 <li class="navItem navItemMenu en"> 17 <a href="#3_menu" onClick="navFuncClose()">DNA Activation</a> 18 </li> 19 <li class="navItem navItemMenu3 en"> 20 <a href="#4_menu2" onClick="navFuncClose()">REIKI</a> 21 </li> 22 <li class="navItem navItemMenu4 en"> 23 <a href="#5_menu3" onClick="navFuncClose()">MAX Meditation</a> 24 </li> 25 <li class="navItem navItemProfile en"> 26 <a href="#6_profile" onClick="navFuncClose()">Profile&nbsp;/&nbsp;Payment&nbsp;/&nbsp;Policy</a> 27 </li> 28 </ul> 29 </nav> 30 31 <div class="container"> 32 <button type="button" class="nav-button" onClick="navFunc()"> 33 <span class="sr-only">MENU</span> 34 </button> 35 </div> 36 37 <div> 38 <a href="index.html"><img src="img/logo.png" alt="Logo"></a> 39 </div> 40</header> 41 42<div class="healingcontainer"> 43 <section class="area concept"> 44 <h6 id="0_concept">コンセプト</h6> 45 <div class="conceptbox"> 46 <div class="conceptmessage"> 47 48 </div> 49 </div> 50 </section> 51 52 <div class="scrolldown"> 53 <span>Scroll</span> 54 </div> 55 56 <section class="area sitemap"> 57 <h6 id="1_sitemap">サイトマップ</h6> 58 <div class="sitemapbox"> 59 <div class="sitemapmessage"> 60 61 </div> 62 </div> 63 </section> 64 65 <section class="area menulist"> 66 <h6 id="2_menulist">メニュー一覧</h6> 67 <div class="menulistbox"> 68 <div class="menulistmessage"> 69 70 </div> 71 </div> 72 </section> 73 74 <section class="area menu"> 75 <h6 id="3_menu">メニュー</h6> 76 <div class="menubox"> 77 <div class="menumessage"> 78 79 </div> 80 <div class="menuphoto"> 81 <img src="img/menu.jpg" alt="メニュー"> 82 </div> 83 </div> 84 </section> 85 86 <section class="area menu2"> 87 <h6 id="4_menu2">メニュー2</h6> 88 <div class="menu2box"> 89 <div class="menu2photo"> 90 <img src="img/menu2.jpg" alt="メニュー2"> 91 </div> 92 <div class="menu2message"> 93 94 </div> 95 </div> 96 </section> 97 98 <section class="area menu3"> 99 <h6 id="5_menu3">メニュー3</h6> 100 <div class="menu3box"> 101 <h3><i class="fas fa-paw"></I>メニュー3</h3> 102 <div class="menu3photo"> 103 <img src="img/menu3.jpg" alt="メニュー3"> 104 </div> 105 <div class="menu3message"> 106 107 </div> 108 </div> 109 </section> 110</div> 111 112 <div id="page_top"> 113 <a href="#0_concept"> 114 </a> 115 </div> 116 117 <section class="profile"> 118 <h6 id="6_profile">プロフィール</h6> 119 <div class="profilebox"> 120 <h3><i class="fas fa-paw"></i>&nbsp;プロフィール</h3> 121 <div class="profilephoto"> 122 <img src="img/profile.jpg" alt="プロフィール写真"> 123 </div> 124 <div class="profilemessage"> 125 126 </div> 127 </div> 128 129 </section> 130 131 <div class="copyright"> 132 <h4> </h4> 133 </div> 134

CSS

1/* スクロールスナップ */ 2.healingcontainer { 3 overflow: auto; 4 scroll-snap-type: y mandatory; 5 height: 100vh; 6} 7 8.area { 9 scroll-snap-align: start; 10 height: 100vh; 11} 12 13.area h6 { 14 color: #ffffff; 15 opacity: 0.01; 16 text-align: left; 17} 18 19.profile h6 { 20 color: #ffffff; 21 opacity: 0.01; 22 text-align: left; 23} 24 25 26/* コンセプト */ 27.area.concept { 28 background: url(img/concept.jpg) no-repeat center center; 29 background-size: cover; 30} 31 32 33 34/* 矢印が動いてスクロールを促す */ 35 36/*スクロールダウン全体の場所*/ 37.scrolldown { 38 /*描画位置※位置は適宜調整してください*/ 39 position: absolute; 40 bottom: 5%; 41 right: 50%; 42 /*矢印の動き1秒かけて永遠にループ*/ 43 animation: arrowmove 1s ease-in-out infinite; 44} 45 46/*下からの距離が変化して全体が下→上→下に動く*/ 47@keyframes arrowmove { 48 0% { 49 bottom: 1%; 50 } 51 50% { 52 bottom: 3%; 53 } 54 100% { 55 bottom: 1%; 56 } 57 } 58 59/*Scrollテキストの描写*/ 60.scrolldown span { 61 /*描画位置*/ 62 position: absolute; 63 left: -20px; 64 bottom: 10px; 65 /*テキストの形状*/ 66 color: #eee; 67 font-size: 0.7rem; 68 letter-spacing: 0.05em; 69 /*縦書き設定*/ 70 -ms-writing-mode: tb-rl; 71 -webkit-writing-mode: vertical-rl; 72 writing-mode: vertical-rl; 73} 74 75/* 矢印の描写 */ 76.scrolldown:before { 77 content: ""; 78 /*描画位置*/ 79 position: absolute; 80 bottom: 0; 81 right: -6px; 82 /*矢印の形状*/ 83 width: 1px; 84 height: 20px; 85 background: #eee; 86 transform: skewX(-31deg); 87} 88 89.scrolldown:after{ 90 content:""; 91 /*描画位置*/ 92 position: absolute; 93 bottom:0; 94 right:0; 95 /*矢印の形状*/ 96 width:1px; 97 height: 50px; 98 background:#eee; 99} 100 101 102@media screen and (max-width: 800px) { 103 .site-header, .site-header:before { 104 height: 90vh; 105 } 106} 107 108 109/* サイトマップ */ 110.area.sitemap { 111 background: url(img/sitemap.jpg) no-repeat center center; 112 background-size: cover; 113} 114 115 116 117/* メニューリスト */ 118.area.menulist { 119 background: url(img/menulist.jpg) no-repeat center center; 120 background-size: cover; 121} 122 123 124/* メニュー */ 125.area.menu { 126 background: url(img/menu.jpg) no-repeat center center; 127 background-size: cover; 128} 129 130 131/* メニュー2 */ 132.area.menu2 { 133 background: url(img/menu2.jpg) no-repeat left center; 134 background-size: cover; 135} 136 137 138/* メニュー3 */ 139.area.menu3 { 140 background: url(img/beach.jpg) no-repeat left center; 141 background-size: cover; 142} 143 144 145/* プロフィール */ 146.profile { 147 position: relative; 148 z-index: -100; 149 background: url(img/orange0099.png) repeat; 150 padding: 200px 0; 151} 152 153 154/* メニューバー:固定 */ 155.site-header { 156 background: rgba(255, 255, 255, 0.75); 157 display: flex; 158 position: fixed; 159 justify-content: space-between; 160 width: 100%; 161 height: 100px; 162} 163 164 165/* メニューバー:画像 */ 166.site-header img { 167 width: 192px; 168 height: 108px; 169 opacity: 0.8; 170 margin-right: 30px; 171} 172 173 174/* メニューバー:ハンバーガーメニュー余白 */ 175.container { 176 padding: 40px 0 20px 20px; 177} 178 179 180/* メニューバー:ボタンテキスト非表示 */ 181.sr-only { 182 border: 0; 183 clip: rect(0 0 0 0); 184 height: 1px; 185 margin: -1px; 186 overflow: hidden; 187 padding: 0; 188 position: absolute; 189 width: 1px; 190} 191 192 193/* ナビゲーションボタン */ 194.nav-button { 195 box-sizing: content-box; 196 padding: 0; 197 outline: none; 198 border: none; 199 background: none; 200 width: 30px; 201 height: 20px; 202 cursor: pointer; 203 color: #735D48; 204} 205 206.nav-button::before, 207.nav-button::after { 208 content: ''; 209 display: block; 210 height: 1px; 211 background-color: currentColor; 212 transform: translateY(10px); 213 transition: 0.3s ease-in-out; 214} 215 216.nav-button::before { 217 transform: translateY(-10px); 218 box-shadow: 0 10px currentColor; 219} 220 221 /* ナビゲーションボタン(閉じるボタン) */ 222 .open .nav-button { 223 z-index: 1000; 224 } 225 .open .nav-button::before { 226 transform: rotate(-45deg); 227 box-shadow: none; 228 } 229 .open .nav-button::after { 230 transform: rotate(45deg); 231 box-shadow: none; 232 } 233} 234 235 236/* ナビゲーションメニュー:(開いた状態) */ 237html.open, .open body { 238 height: 100%; 239 overflow: hidden; 240} 241 242.open .site-header { 243 position: relative; 244 margin-bottom: -100px; 245} 246 247.open .headerNav { 248 position: absolute; 249 top: 0; 250 left: 0; 251 width: 100%; 252 height: 100vh; 253 background: rgba(255,255,255,0.8); 254 color: #735D48; 255 display: flex; 256 justify-content: center; 257 align-items: center; 258} 259 260.open .headerNav ul { 261 margin-bottom: 5px; 262} 263 264.open .headerNav li:not(:last-child) { 265 margin-bottom: 5px; 266} 267 268/* ナビゲーションメニュー(閉じた状態) */ 269.headerNav { 270 width: 0; 271 height: 0; 272 position: absolute; 273 right: 100%; 274 overflow: hidden; 275 color: transparent; 276 transition: 0.5s ease-in-out; 277} 278 279 280/* ナビゲーションメニュー */ 281.navItem a { 282 display: block; 283 padding: 20px 0 15px; 284 margin-left: 20px; 285 text-align: center; 286 font-size: 18px; 287 color: #735D48; 288 font-weight: bold; 289} 290 291@media (max-width: 768px) { 292 .navItem a { 293 display: block; 294 padding: 10px 0 5px; 295 margin-left: 20px; 296 text-align: center; 297 font-size: 12px; 298 color: #735D48; 299 font-weight: bold; 300 } 301} 302 303@media (min-width: 769px) { 304 .navItem a { 305 display: block; 306 padding: 15px 0 15px; 307 margin-left: 20px; 308 text-align: center; 309 font-size: 24px; 310 color: #735D48; 311 font-weight: bold; 312 } 313} 314 315 316/* 擬似要素でテキストを表示 */ 317 .navItem a::after { 318 display: block; 319 margin-top: 2px; 320 font-family: 'RocknRoll One', sans-serif; 321 font-size: 10px; 322 font-weight: lighter; 323 } 324 325 .navItemTop a::after { 326 content: "トップ"; 327 } 328 .navItemConcept a::after { 329 content: "コンセプト"; 330 } 331 .navItemSitemap a::after { 332 content: "サイトマップ"; 333 } 334 .navItemMenu a::after { 335 content: "メニュー"; 336 } 337 .navItemDNAA a::after { 338 content: "DNA アクティベーション"; 339 } 340 .navItemREIKI a::after { 341 content: "レイキ"; 342 } 343 .navItemMAXM a::after { 344 content: "MAX 瞑想"; 345 } 346 .navItemProfile a::after { 347 content: "プロフィール / お支払い方法 / ポリシー"; 348 } 349} 350 351@media (min-width: 801px) { 352 .navItem a::after { 353 display: block; 354 margin-top: 2px; 355 font-family: 'RocknRoll One', sans-serif; 356 font-size: 20px; 357 font-weight: lighter; 358 } 359} 360 361 362

JavaScript

1<script> 2function navFunc() { 3 document.querySelector('html').classList.toggle('open'); 4} 5 6function navFuncClose() { 7 document.querySelector('html').classList.remove('open'); 8} 9 10</script>

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問