970px以上で動作するメガメニューを作りたいのですが、困っていることが2つあります。
(ブラウザはChromeとEdgeとFireFoxを使って確認しました。2つの困りごとどちらともFireFoxのみ下記のようになってしまいます。)
分かりにくい説明で申し訳ありませんが、教えていただけるとありがたいです。
よろしくお願いします<(_ _)>
【困りごと1】
li#megabtn にカーソルが乗った状態でページをリロードすると、「li#megabtn からカーソルが離れたときに #megabtnに .is-active がついて、li#megabtn にカーソルが乗った時に #megabtnの .is-active が消える」という風になってしまいます。
ページをリロードした時に li#megabtn にカーソルがある場合でも、#megabtnに .is-activeをすぐにつけるにはどうしたら良いでしょうか。。
【困りごと2】
上記のように、li#megabtn にカーソルが乗った状態でページをリロードすると、「li#megabtn から下にカーソルを動かしたときに#megabtnの .is-activeが付いたり消えたり」してしまいます。
(バブリングというのでしょうか?stoppropagationを使ってみたりしたのですが、解決できませんでした。)
HTML
1 <ul id="menu-test" class="nav navbar-nav dropdown"> 2 3 <li id="megabtn" class="start"> 4 <a class="dropdown-toggle hover-btn sp-hide" href="products/"> 5 商品情報<b class="caret"></b> 6 </a> 7 <div class="megamenu"> 8 <div class="container megawrapper"> 9 <p class="topcategory">商品情報</p> 10 <dl class="megamenu-inner"> 11 <dt>商品カテゴリ1</dt> 12 <dd> 13 <ul> 14 <li><a href="products/01/"><img class="res" src="/images/products01.png" alt="商品1"><span>商品1</span></a></li> 15 <li><a href="products/02/"><img class="res" src="/images/products02.png" alt="商品2"><span>商品2</span></a></li> 16 <li><a href="products/03/"><img class="res" src="/images/products03" alt="商品3"><span>商品3</span></a></li> 17 </ul> 18 </dd> 19 </dl> 20 <ul class="bottom-menu"> 21 <li><a href="product/">商品一覧へ</a></li> 22 <li><a href="products/">商品詳細へ</a></li> 23 </ul> 24 </div> 25 </div> 26 </li> 27 28 <li id="dropdown2"> 29 <a class="dropdown-toggle" href="menu2/"> 30 メニュー2<b class="caret"></b> 31 </a> 32 <ul class="dropdown-menu"> 33 <li><a href="link1/">リンク1</a></li> 34 <li><a href="link2">リンク2</a></li> 35 <li><a href="link3">リンク3</a></li> 36 </ul> 37 </li> 38 39 </ul> 40 41
JavaScript
1<script> 2$(window).resize(function(){ 3 4 $(function(){ 5 var w = $(window).width(); 6 var x = 970; 7 if(w >= x) 8 { 9 10$(function () { 11 $('#megabtn').hover(function(){ 12 $('#megabtn').toggleClass('is-active'); 13 }); 14}), 15$(function () { 16 $('#dropdown2').hover(function(){ 17 $('#dropdown2').toggleClass('open'); 18 }); 19}) 20 } 21}); 22 23}); 24</script>
CSS
1 div.megamenu { 2 display: none; 3 overflow: auto; 4 position: absolute; 5 top: 50px; 6 left: 0; 7 max-height: calc(100vh - 50px); 8 padding: 1.5em 0 3em; 9 z-index: 100; 10 width: 1180px; 11 margin-top:0!important; 12} 13 14 15 #megabtn.is-active div.megamenu { 16 display: block; 17 animation: show .5s ease 0s forwards; 18 -webkit-animation: show .5s ease 0s forwards; 19}
回答1件
あなたの回答
tips
プレビュー