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

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

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

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

Q&A

解決済

1回答

1182閲覧

入れ子にしたリスト内でマウスを動かすとチラつく

jeaw

総合スコア11

jQuery

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

0グッド

0クリップ

投稿2017/04/06 05:29

###ul>li>ul>liで、li間を行ったり来たりするとチラついてしまうのを直したいです

親メニューにホバーして出てきた子メニューを選ぶときに、liの境目でチラつくようです。
liの中で入れ子にしてるから、何かの影響を受けてしまっているのかなとは思いますが、
htmlの構成的に、そのようにコーディングしたいです。

バブリングってやつか?と思いましたが、これは親要素に影響するんですよね?
このチラつきの対処法、もしくは、ヒントを頂けましたら幸いです。

私のスキルとしましては、下記のとおりです。

今までコピペだったjqueryのコードを今回初めて自分で書きました。
細かいことは勉強していないです。
とりあえず実現したい動きを検索して作りました。

何か不足がありましたらすみません。
どうぞよろしくお願いします。

###html

<header> <img src="img/logo.png" width="200" height="80" alt="logo" class="logo"> <nav class="header-nav"> <ul> <li>nav01 <ul class="nav-child"> <li><a href="">sub-nav01</a></li> <li><a href="">sub-nav02</a></li> </ul> </li> <li>nav02 <ul class="nav-child"> <li><a href="">sub-nav03</a></li> <li><a href="">sub-nav04</a></li> </ul> </li> <li><a href="">nav03</a></li> <li><a href="">nav04</a></li> <li><a href="">nav05</a></li> </ul> </nav> </header> <div class="contents"> <h1>サイトコンテンツ</h1> </div>

###jquery

$(function(){ var nav_li = $('.header-nav ul li'); var nav_child = $('.nav-child'); $(nav_li).hover(function(e) { $('.contents').css('margin-top', '50px'); $(nav_li).children('ul').addClass('shows'); $(this).children('ul').show(); $(this).children('ul').removeClass('shows'); if($(nav_child).hasClass('shows')) { $('.nav-child.shows').css('display','none'); } }); $('.contents').hover(function() { $(nav_child).css('display','none'); $('.contents').css('margin-top', '0'); }); });

###css

.contents { height:500px; } body { margin:0; background-color: #ccc; } ul { margin: 0; padding: 0; } li { list-style: none; } header { position: relative; padding: 25px 30px; background-color: #333; } header:after, .header-nav ul:after { content: ""; display: block; clear: both; } .logo { float: left; } .header-nav { float: right; width: 450px; color: #fff; } .header-nav li { float: left; padding: 15px 20px; } .header-nav li a { color: #fff; } .header-nav li ul { display: none; position: absolute; top: 130px; left: 0; width: 100%; background-color: #efefef; } .header-nav li ul:after { content: ""; display: block; clear: both; } .header-nav li ul a { padding: 15px 20px; color: #333; }

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

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

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

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

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

guest

回答1

0

ベストアンサー

こういうことかな?

JavaScript

1// var nav_li = $('.header-nav ul li'); 2// ↓ 3 var nav_li = $('.header-nav > ul > li'); 4```**動くサンプル:**[https://jsfiddle.net/hq7gh0t1/](https://jsfiddle.net/hq7gh0t1/)

投稿2017/04/06 05:38

kei344

総合スコア69400

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

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

jeaw

2017/04/06 05:42

そんな単純なこととは・・・ 大変助かりました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問