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

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

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

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

HTML5

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

jQuery

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

HTML

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

CSS

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

Q&A

解決済

2回答

1171閲覧

スマホ版用に設定したdisplay:noneをPC版で動作しないようにさせたい

05310531ee

総合スコア1

CSS3

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

HTML5

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

jQuery

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2021/07/24 11:03

編集2021/07/24 11:06

前提・実現したいこと

幅768px以上の場合は、header-nav表示されるようにしたい

詳細

幅768px以上の時には常時header-navが表示されるように設定したいです。
何もしない場合は想定通り、header-navが表示されているのですが、
幅768px以下で、ハンバーガーメニューをクリックしてheader-navを一度表示、非表示にすると、
幅768px以上に戻しても、その動作が続いてしまい、header-navが消えてしまいます。

動作のGIFです↓
https://gyazo.com/e3949768f5f47568396e138bdb02124a

###該当のソースコード

#HTML

<header class="header"> <div class="header-inner"> <div class="site-title"><a href="./">Cresta Design</a></div><!-- /.site-title --> <nav class="header-nav"> <ul class="nav-list"> <li class="nav-item"><a href="!">Concept</a></li><!-- /.nav-item --> <li class="nav-item"><a href="!">Service</a></li><!-- /.nav-item --> <li class="nav-item"><a href="!">Works</a></li><!-- /.nav-item --> <li class="nav-item"><a href="./">Contact</a></li><!-- /.nav-item --> </ul><!-- /.nav-list --> </nav><!-- /.header-nav --> <button class="burger-btn"> <span class="bar bar_top"></span> <span class="bar bar_mid"></span> <span class="bar bar_bottom"></span> </button><!-- /.burger-btn --> </div><!-- /.header-inner --> </header><!-- /.header -->

#CSS

/* ---header---- */ .header{ padding: 19px 30px; position: absolute; top: 0; left: 0; z-index: 1; width: 100%; box-sizing: border-box; transition: .3s; } .header-inner{ display: flex; align-items: center; justify-content: space-between; max-width: 1200px; margin: 0 auto; } .header a{ color: #fff; font-style: italic; text-decoration: none; font-weight: bold; } .header a:hover{ opacity:0.7; transition: .3s; } .site-title{ font-size: 2.6rem; } .nav-list{ display: flex; } .nav-item{ margin-right: 30px; } .nav-item:last-of-type{ margin-right: 0; } .burger-btn{ display: none; } @media screen and (max-width:768px){ /* ---header_sp---- */ .header{ padding: 30px 4vw 0; } .header-nav{ display: none; position: fixed; top: 0; left: 0; background-color: #282F35; height: 100vh; width: 100%; } .nav-list{ justify-content: center; align-items: center; height: 100%; flex-direction: column; } .nav-item{ margin-bottom: 30px; } .nav-item:last-of-type{ margin-bottom: 0; } .burger-btn{ position: absolute; top: 30px; right: 4vw; display: block; } .burger-btn .bar{ display: block; width: 30px; height: 2px; background-color: #fff; } .bar_top, .bar_mid{ margin-bottom: 8px; } .burger-btn.cross .bar_top{ transform: rotate(45deg) translate(8px,8px); transition: .3s; } .burger-btn.cross .bar_mid{ opacity: 0; transition: .3s; } .burger-btn.cross .bar_bottom{ transform: rotate(-45deg) translate(8px,-8px); transition: .3s; } body.noscroll{ overflow: hidden; } button{ background-color: transparent; border:none; cursor:pointer; outline:none; padding: 0; appearance: none; } }

#jQuery

$('.burger-btn').on('click',function(){ $('.header-nav').fadeToggle(300); $(this).toggleClass('cross'); $('body').toggleClass('noscroll'); });

#使用している言語
HTML/CSS/jQuery

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

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

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

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

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

guest

回答2

0

matchMedia を使って、.header-nav を show するのはどうでしょうか。

MediaQueryList - Web API | MDN

投稿2021/07/24 11:42

Lhankor_Mhy

総合スコア36960

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

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

05310531ee

2021/07/26 12:37

ありがとうございます。別の方で解決しました。また次回ぜひよろしくお願いいたします。
guest

0

ベストアンサー

fadeToggleのアニメーション後、要素にdisplay: noneが追加されている場合はdisplayプロパティを削除する形ではどうでしょうか。
2~4行目を追加しています。

js

1$('.burger-btn').on('click',function(){ 2 $('.header-nav').fadeToggle(300, null, function(){ 3 if($(this).css('display')==='none') $(this).css('display', ''); 4 }); 5 //$('.header-nav').fadeToggle(300); 6 $(this).toggleClass('cross'); 7 $('body').toggleClass('noscroll'); 8});

投稿2021/07/24 11:43

webgoto

総合スコア1293

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

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

05310531ee

2021/07/26 12:36

ありがとうございました。解決しました。ずっと悩んでいたので助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問