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

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

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

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

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

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

CSS

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

Q&A

解決済

1回答

2061閲覧

画面全体に広がるハンバーガーメニューがページ遷移のたびに開く

heyhey...

総合スコア40

CSS3

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

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

JavaScript

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

CSS

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

0グッド

1クリップ

投稿2018/10/04 01:16

編集2018/10/04 02:05

下記のjavascriptとCSSを使用して、ハンバーガを開くとブラウザ全体に背景色が広がるメニューを実装しました。

以前に「ページ内リンクの時もメニューを閉じたい」で質問しました
https://teratail.com/questions/149666

その通りのコードにして、ページ内リンクの時もメニューは閉じるようになったのですが、
今度はページ遷移のたびに開いたメニューが一瞬移り込むようになりました。
ブラウザの戻るで元のページへ戻った後もメニューが開いたままです。

やりたいことは、

・ページ内リンクの時もメニューを閉じたい

・ページ遷移した時にメニューが開かないで欲しい
・ブラウザの戻るで戻ってきた時にメニューは閉じていて欲しい

です。

どなたかご教授いただけないでしょうか。
よろしくお願いします。

HTML

<div id="togglemenu"> <ul> <li><a href=="#link1></a></li> </ul> </div> <a class="menu-trigger" href="#"> <span></span> <span></span> <span></span> </a>

javascript

<script type="text/javascript"> jQuery(function(){ jQuery('.menu-trigger').on('click', function() { jQuery(this).toggleClass('active'); jQuery("#togglemenu").fadeToggle(); return false; }); jQuery('a:not(.menu-trigger)').on('click', function(event) { jQuery('.menu-trigger').trigger('click'); }); }); </script>

CSS

.menu-trigger, .menu-trigger span { display: inline-block; transition: all .4s; box-sizing: border-box; } .menu-trigger { position: fixed; top:18px; right:30px; position:absolute; width: 40px; height: 40px; z-index: 999999; background-color:transparent; border-radius: 4px; } a.menu-trigger:hover{ background-color:transparent; } .menu-trigger span { position: absolute; z-index: 9999; left: 8px; width: 75%; height: 2px; background-color: #fff; } .menu-trigger span:nth-of-type(1) { top: 18px; } .menu-trigger span:nth-of-type(2) { top: 28px; } .menu-trigger span:nth-of-type(3) { bottom:0px; } .menu-trigger.active span:nth-of-type(1) { -webkit-transform: translateY(10px) rotate(-45deg); transform: translateY(10px) rotate(-45deg); } .menu-trigger.active span:nth-of-type(2) { opacity: 0; } .menu-trigger.active span:nth-of-type(3) { -webkit-transform: translateY(-10px) rotate(45deg); transform: translateY(-10px) rotate(45deg); } .menu-menu-1-container{ width: 100vw; height:100%; margin:0 auto; } #togglemenu{ display: none; width: 100vw; height:100%; position: fixed; top: -30px; z-index: 999999; background: transparent; padding: 0; box-sizing: border-box; } #togglemenu ul.menu{ float:none; text-align: center; background-color:rgba(0,0,0,0.9); margin:0 auto; width:100%; height:100%; padding-top:80px; } #togglemenu ul.menu li{ padding-left: 0px; list-style-type: none; margin-top: 50px; display:block; } #togglemenu ul.menu li a{ color: #fff; text-decoration: none; font-size: 26px; }

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

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

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

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

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

x_x

2018/10/04 07:25

「移り込む」とは? 再現するコードを提示してください
guest

回答1

0

ベストアンサー

javascript

1jQuery('a:not(.menu-trigger)').on('click', function(event) { 2 jQuery('.menu-trigger').trigger('click'); 3 });

上記コードを追加されたとのことですが、上記コードの意味は
「”menu-trigger"クラスが付与されていない全てのaタグ」に対しての”クリック”イベントをハンドルしています。
したがって

ページ遷移のたびに開いたメニューが一瞬移り込むようになりました。

という挙動は記載している処理(期待)通り動作していると考えられます。

”ページ内リンク”が #togglemenu のみを示すのであれば
以下の通り修正することで対応可能と思われます。

html

1<div id="togglemenu"> 2<ul> 3<li><a class="toggleHandle" href="#link1"></a></li> <!-- aタグにclass追加。toggleメニューで追加するaタグには全て "toggleHandle"クラスを追加する --> 4</ul> 5</div>

javascript

1 jQuery('.toggleHandle').on('click', function(event) { 2 jQuery('.menu-trigger').trigger('click'); 3 });

上記修正でメニューが閉じていない、という件も対応できそうではありますがいかがでしょうか?
ご確認だくさい。

投稿2018/10/04 13:14

編集2018/10/05 16:15
Lazy-player

総合スコア77

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

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

heyhey...

2018/10/04 23:33

希望通りの表示ができました!!感謝です。誠にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問