前提・実現したいこと
グローバルメニューを作成しています。
【PC】768px~
→ 横並びメニュー
→ メニューをホバーすると子メニューがスライドダウンする
→ スマホ時のクリックイベントを解除したい
【スマホ】768px以下
→ ハンバーガーメニュー
→ ハンバーガーメニューをクリックしてメインメニューを表示する
→ メインメニューの中にある子メニューをクリックしてスライドダウンで表示させたい
※この部分をPCサイズ表示ではホバーにしたいです。
いろいろ参考にしながら3回作ってみたのですが、
それぞれどこかしらに問題があるようで、挙動がおかしいです。
どこが悪いのか、ご教示いただけないでしょうか。
一応、1についてはローカルで作成したところうまく動いていたのですが、
Codepenやお客様のデモ環境にアップロードすると後述の通り、
「スマホサイズにした時に、オンマウスすると子メニューが開いてしまう」
といった現象が発生してしまいます。
以下、デモになります。
基本的にはクロームのデベロッパーツールを使ってブラウザ動かしながら作業しています。
1 https://codepen.io/lingwood/pen/gOpyLwZ
→ PCサイズの時にはJQueryでホバーアクションつけています。
問題点1
PCサイズで表示した際に、オンマウスでメニュー表示はされますが、トリガーとなっているメニューをクリックしても子メニューがスライドアップ、スライドダウンが発生してしまいます。
問題点2
スマホサイズにした時に、オンマウスすると子メニューが開いてしまいます。
2 https://codepen.io/lingwood/pen/JjdVbwZ
→1をもっとスマートにしたい、JQueryを簡単に書きたい
問題点1
PCサイズで表示した際に、メニュー2の子メニューが開きっぱなしになってしまっています。
問題点2
スマホサイズで表示した際に、オンマウスでスライドダウンしてしまいます。
また、クリックアクションが動きません。
3 https://codepen.io/lingwood/pen/ZEGZBNJ
→PCサイズの時にはCSSでホバーアクションつける記述になっています。
問題点1
スマホからPCサイズにリサイズするとホバーアクションが解除されてしまっています。(サンプルデモメニューの1)
問題点2
スマホサイズにした時に子メニューが開きっぱなしになってしまいます。
またこれを解決しようとして.hide()やCSSでdisplay:noneを付けると今度はスライドしなかったり
いろいろと問題が発生します。
1週間くらい考えこんでおりまして・・・どうか助けていただけないでしょうか
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/03 07:30
2020/04/03 07:34
2020/04/03 08:09
2020/04/03 08:20
2020/04/03 08:32
2020/04/03 08:45
2020/04/03 08:48
2020/04/03 08:56
2020/04/03 09:28
2020/04/06 01:56
2020/04/06 08:44
2020/04/06 09:44
2020/04/06 09:53
2020/04/07 00:49
2020/04/07 01:18
2020/04/07 02:51
2020/04/07 03:27
2020/04/07 04:34