0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FadeToggleに勝手にdisplay:noneがついてメニューが消えた時の対象法

Posted at

#FadeToggleについて厄介なdisplya:noneについて
FadeToggle等を使うと閉じた時にdisplay:noneがつくのは仕様らしい・・・
そこで色々調べて掲示板などをみたり試した結果!!
良い方法が見つけた、知っているひとは多いと思うが初心者や知らない人のために残して置きます。

まず今回自分が試したのはwindow.matchMediaを使う方法です。
window.matchMediaの説明は今回は省略させていただきます。
では今回の本質であるwindow.matchMediaを使った書き方を紹介します。


window.matchMedia('(max-width: 768px)').addEventListener('change', e => {
    if (!e.matches) $('.p-header__nav').attr('style', null);

});

ただこれだけじゃ一つ問題が出ます。
この状態からブラウザーサイズを大きくして、また小さくするとこうなります。

##解決策
上記でかいたコードに1行追加するだけ!!


window.matchMedia('(max-width: 768px)').addEventListener('change', e => {
    if (!e.matches) $('.p-header__nav').attr('style', null);
    $('.p-header_bagger-btn').removeClass('cross');//追加したコード
  });

ハンバーガーメニューとかはFadeToggle以外ににもCSSでやる方法でもあるのでそっちでも試してみようと思う。
初心者のためにでも役に立ては嬉しいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?