\r\n\r\n### HTML\r\n
\r\n \r\n \r\n
\r\n\r\n### CSS\r\n/* ヘッダー */\r\n.header{\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 72px;\r\n z-index: 100;\r\n display: flex;\r\n justify-content: flex-end;\r\n box-sizing: border-box;\r\n padding-right: 14px;\r\n}\r\n/* ナビゲーションメニュー (開いた状態) */\r\n@media (max-width: 767px) {\r\nhtml.open, .open body {\r\n height: 100%;\r\n overflow: hidden;\r\n}\r\n.open nav {\r\n left: 0;\r\n}\r\n/* 横スクロール発生させない */\r\nhtml,body {\r\n position: relative;\r\n overflow-x: hidden;\r\n}\r\n}\r\n/* ナビゲーションメニュー(収納中の表示) */\r\n.nav {\r\n position: absolute;\r\n top: 0;\r\n left: 100%;\r\n width: 100%;\r\n height: 100vh;\r\n overflow: hidden;\r\n color: #fff;\r\n transition: left 0.5s;\r\n background: var(--main-color);\r\n} \r\n\r\n## 試したこと\r\n\r\n.navに「position:fixed」を入れたりしてみたが、変わらず…\r\nボタンを押すとメニューが出ると同時に最上部に飛ばされます(涙)","answerCount":1,"upvoteCount":0,"datePublished":"2020-06-27T07:28:34.754Z","dateModified":"2020-06-27T08:11:30.214Z","acceptedAnswer":{"@type":"Answer","text":"こんにちは。\r\nこれはどうですか?\r\n\r\n```css\r\nhtml.open, .open body {\r\n/* height: 100%; 削除 */\r\noverflow: hidden;\r\n}\r\n```","dateModified":"2020-06-27T09:01:31.464Z","datePublished":"2020-06-27T09:01:31.464Z","upvoteCount":1,"url":"https://teratail.com/questions/273296#reply-389936"},"suggestedAnswer":[],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"トップ","url":"https://teratail.com"},{"@type":"ListItem","position":2,"name":"メニューに関する質問","url":"https://teratail.com/tags/%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC"},{"@type":"ListItem","position":3,"name":"メニュー","url":"https://teratail.com/tags/%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC"}]}}}
質問するログイン新規登録
メニュー

メニューは、UIにおける仕組みであり、ユーザに機能の表示と実行する手段を与えます。

JavaScript

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

HTML

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

CSS

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

Q&A

解決済

1回答

1838閲覧

position: fixed;で固定したボタンでメニューを表示させると最上部に戻ってしまう

minotarou

総合スコア1

メニュー

メニューは、UIにおける仕組みであり、ユーザに機能の表示と実行する手段を与えます。

JavaScript

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/06/27 07:28

編集2020/06/27 08:11

0

0

前提・実現したいこと

メニューボタンを位置固定し、スクロールしたどの位置からでも、全画面メニューが右からスライドインするようなものを設置したいのですが、
メニューボタンをクリックするとページ全体が最上部に戻されてしまいます。(メニューは正常にスライドされます)

初歩的なことかもしれないのですが、
数時間格闘しましたがさっぱりわかりません…涙
どなたか分かる方がいたらどうか教えてくださいm(_ _)m

該当のソースコード

java script

<script> function navFunc() { document.querySelector('html').classList.toggle('open'); } </script>

HTML

<header class="header"> <nav class="nav"> <ul> <li><a href="index.html">HOME</a></li> <li><a href="menu.html">MENU</a></li> <li><a href="about.html">ABOUT</a></li> </ul> </nav> <button type="button" class="nav-button" onClick="navFunc()"><span class="sr-only">MENU</span></button> </header>

CSS

/* ヘッダー /
.header{
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 72px;
z-index: 100;
display: flex;
justify-content: flex-end;
box-sizing: border-box;
padding-right: 14px;
}
/
ナビゲーションメニュー (開いた状態) /
@media (max-width: 767px) {
html.open, .open body {
height: 100%;
overflow: hidden;
}
.open nav {
left: 0;
}
/
横スクロール発生させない /
html,body {
position: relative;
overflow-x: hidden;
}
}
/
ナビゲーションメニュー(収納中の表示) */
.nav {
position: absolute;
top: 0;
left: 100%;
width: 100%;
height: 100vh;
overflow: hidden;
color: #fff;
transition: left 0.5s;
background: var(--main-color);
}

試したこと

.navに「position:fixed」を入れたりしてみたが、変わらず…
ボタンを押すとメニューが出ると同時に最上部に飛ばされます(涙)

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんにちは。
これはどうですか?

css

1html.open, .open body { 2/* height: 100%; 削除 */ 3overflow: hidden; 4}

投稿2020/06/27 09:01

Lhankor_Mhy

総合スコア37634

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

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

minotarou

2020/06/27 09:07

すばらしいです…! 該当箇所を削除したら、直りました。 本当に、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問