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

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

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

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

jQuery

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

HTML

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

CSS

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

Q&A

1回答

2787閲覧

アコーディオンメニューで子メニューがちらつく現象について

julia1993

総合スコア8

JavaScript

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

jQuery

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

HTML

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

CSS

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

0グッド

0クリップ

投稿2019/05/29 01:08

編集2019/05/29 02:13

パソコン版ナビゲーションとスマホ版ナビゲーションの両方に複数のアコーディオンメニューを実装しております。
ieとedgeで表示した場合のみ、子メニューがちらつきます。

複数あるアコーディオンうちの一つ目を表示させた際にはちらつかず、通常通りの動作で表示されます。
一つを表示させた状態で、そのまま別の分類をホバーしたときに、一瞬子メニューがちらついてからスライドダウンされます。
つまりホバーが外れたメニューがスライドアップしているときに、別の子メニューのスライドダウンが動いている際にちらつくようなイメージです。
GoogleChromeとFirefoxでも確認しましたがこの現象は起きませんでした。
ソースは以下の通りです。

HTML

1<ul> 2 <li class="nav1" id="parent"> 3 <span> 4 分類1 5 </span> 6 <ul id="sub" style="display: none;"> 7 <li><a href="#">メニュー1</a></li> 8 <li><a href="#">メニュー2</a></li> 9 <li><a href="#">メニュー3</a></li> 10 </ul> 11 </li> 12 <li class="nav2" id="parent"> 13 <span> 14 分類2 15 </span> 16 <ul id="sub" style="display: none;"> 17 <li><a href="#">メニュー1</a></li> 18 <li><a href="#">メニュー2</a></li> 19 <li><a href="#">メニュー3</a></li> 20 <li><a href="#">メニュー4</a></li> 21 </ul> 22 </li> 23 <li class="nav3" id="parent"> 24 <span> 25 分類3 26 </span> 27 <ul id="sub" style="display: none;"> 28 <li><a href="#">メニュー1</a></li> 29 <li><a href="#">メニュー2</a></li> 30 <li><a href="#">メニュー3</a></li> 31 <li><a href="#">メニュー4</a></li> 32 <li><a href="#">メニュー5</a></li> 33 </ul> 34 </li> 35</ul>

javaScript

1$(function() { 2 'use strict'; 3 4 // 子メニューを隠す 5 $('ul#sub').hide(); 6 7 // 親メニューホバー処理 8 $('ul#pc_menu>li#parent').hover( 9 // ホバーされたとき 10 function(){ 11 $(this).children('ul').stop().slideToggle(); 12 } 13 ); 14});

css

1li#parent { 2 position: relative; 3} 4ul#sub{ 5 position: absolute; 6 display: none; 7} 8ul#sub li { 9 background-color: #E4EECC; 10 border: none; 11 text-align: center; 12 width: 100%; 13} 14ul#sub li:hover { 15 background: #8CC11F; 16} 17ul#sub li:last-child { 18 border-bottom: 1px solid #fff; 19} 20ul#sub li a span{ 21 display: inline; 22 color: #FFA216; 23 font-size: 10px; 24} 25ul#sub li a { 26 display: block; 27 padding: 8px 0; 28 text-align: center; 29 border-bottom: 1px solid #fff; 30}

同じ症状で悩まれた方、解決方法をご存知の方がおられましたら、ご教示いただけますと幸いです。

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

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

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

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

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

fuzzball

2019/05/29 01:16

タグのJavaはJavaScriptの間違いでしょうか?
julia1993

2019/05/29 02:13

選択し間違えておりました。 修正しました。 混乱を招き申し訳ございません。
guest

回答1

0

  • ulに id=pc_menuがないです
  • id=parent,subが複数存在します、idはユニークにしか設定できません

投稿2019/05/29 01:23

yambejp

総合スコア114829

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問