2017-10-07 8 views
0

ボタンとメニューがあります。マウスオーバーのボタンはメニューを表示します。私は、マウスがメニューを離れて自分自身を隠すときにコーディングしましたが、マウスが上に行く前に隠れています。助けて? z屈折率追加onmouseoutを非表示にするメニューですが、onmouseoverを隠すメニュー

function showMenu() { 
 
    var menuBar = document.getElementById("menu"); 
 

 
    menuBar.style.display = "block"; 
 

 
} 
 

 
function hideMenu() { 
 
    document.getElementById("menu").style.display = "none"; 
 
}
<a id="menu_button" onmouseover="showMenu()"><img src="https://i.imgur.com/mRIyhW8.png" class="menu_button" onmouseover="this.src='https://i.imgur.com/zSPpoVX.png'" onmouseout="this.src='https://i.imgur.com/mRIyhW8.png'" /></a> 
 

 
<div id="menu" onmouseout="hideMenu()"> 
 
    <ul> 
 
    <li>HOME</li> 
 
    <li>PORTFOLIO</li> 
 
    <li>ABOUT</li> 
 
    </ul> 
 
</div>

EDIT :2。私のCSSで問題を解決しました。あなたの時間をありがとう。

+0

我々がテストすることができますので、あなたは完全なリンクへの画像のリンクを変更できますか? –

+0

@TemaniAfifあります。 –

答えて

0

マウスがUL要素の上にあるときにonmouseoutイベントがトリガされます。純粋なjavascriptでこの問題を解決するのは複雑です。 Jqueryには、マウスとマウスのメソッドがあります。あなたはmouseleaveので、使用する必要が

$("#menu_button").mouseenter(function() { 
     $("#menu").show(); 
    }); 
    $("#menu").mouseleave(function() { 
     $(this).hide(); 
    }); 
+0

私はすでにjquery sirを試してきましたが、何らかの理由でまったく動作しません。 –

0

:マウスポインタがどの子 要素だけでなく、選択した要素から離れたときに

マウスアウトイベントがトリガされます。

更新:

  1. は 外画像をトリガ避けるためmenu_buttonのサイズを変更しました。
  2. #menuにcssを追加しました。
  3. イメージを残すときに非表示になるようにmouseleavemenu_buttonを追加しました。

document.getElementById("menu_button").addEventListener('mouseover', function() { 
 
    document.getElementById("menu").style.display = "block"; 
 
}); 
 

 
document.getElementById("menu").addEventListener('mouseover', function() { 
 
    document.getElementById("menu").style.display = "block"; 
 
}); 
 

 
document.getElementById("menu").addEventListener('mouseleave', function() { 
 
    document.getElementById("menu").style.display = "none"; 
 
}); 
 

 
document.getElementById("menu_button").addEventListener('mouseleave', function() { 
 
    document.getElementById("menu").style.display = "none"; 
 
});
#menu_button { 
 
    display: block; 
 
    width: 50px; 
 
    height: 50px; 
 
} 
 

 
#menu_button img:hover { 
 
    opacity: 0.8; 
 
} 
 

 
#menu { 
 
    border: solid 1px; 
 
    display: none; 
 
}
<a id="menu_button"><img src="https://i.imgur.com/mRIyhW8.png" class="menu_button" /></a> 
 

 
<div id="menu"> 
 
    <ul> 
 
    <li>HOME</li> 
 
    <li>PORTFOLIO</li> 
 
    <li>ABOUT</li> 
 
    </ul> 
 
</div>

+0

面白いことに、私はそれを残すとメニューバーが消えることはないと思います。私はここでは動作するが、私のサイトでは動作しないことがわかります。 –

+0

@BillHicksもっとうまくいくためにいくつかの変更を加えて更新しました。それができない場合、私はあなたのサイトの残りのコードを見る必要があります。 – MarioZ

+0

@BillHicks私が変わったことがうまくいかないのを見て、申し訳ありませんが、私はそれを修正する必要があります。 – MarioZ

関連する問題