これ以上適切なタイトルが思い浮かびませんでした。変更していただければ幸いです。
ナビゲーション用に左の列を固定しています。ユーザーがこの列のナビゲーション項目の 1 つにカーソルを合わせたときに、列の右側にサブメニューを表示したいと考えています。私の問題は、ユーザーがカーソルを新しいサブメニュー要素に移動すると、カーソルが消えることです。
これは私が今のところ行っているところですが、これを解決する最善の方法がわかりません。
ナビゲーション項目の 1 つに 1750 ミリ秒以上カーソルを合わせると、サブメニューが表示されますが、その上にカーソルを合わせると消えます! どうすればそこにとどまることができますか?サブメニューをホバリングするときに機能をキャンセルする必要があるかのmouseleave
ようです...しかし、確かではありません...
私のCSSコード:
.page-wrapper {
width:100%;
height:100%;
}
.nav {
position:fixed;
height:100%;
left:0;
top:0;
width:175px;
background:#111;
padding:20px 0;
}
.nav-item {
height:40px;
line-height:40px;
padding:0 20px;
color:#FFF;
font-size:13px;
cursor:pointer;
}
.nav-item:hover {
background:#222;
}
.submenu {
display:none;
position:fixed;
left:175px;
top:0;
width:175px;
height:100%;
background:#999;
}
私のjQueryコード:
var sub_menu_timer;
$('.nav-item').on({
mouseenter:function() {
sub_menu_timer = setTimeout(function() {
$('.submenu').show();
},1750)
},
mouseleave:function() {
clearTimeout(sub_menu_timer);
$('.submenu').hide();
}
})
私のHTMLコード:
<div class="page-wrapper">
<div class="submenu"></div>
<div class="nav">
<div class="nav-item">
ITEM 1
</div>
<div class="nav-item">
ITEM 2
</div>
<div class="nav-item">
ITEM 3
</div>
</div>
</div>