リスト要素に単純なホバー効果を作成しようとしています。ただし、マウスがリスト項目の上にあるときに表示される要素の間には小さなギャップがあります。これにより、イベントが強制的mouseleave
にトリガーされますが、これは望ましくありません。
これがフィドルのデモです。リスト項目にカーソルを合わせた後、小さなボックスに移動してみてください。
HTML:
<ul>
<li>test <div class="block">Block</div></li>
<li>test2 <div class="block">Block descriptions</div></li>
</ul>
CSS:
ul { width: 50px; }
ul li { width: 50px; height: 50px; background: #c00; margin: 0 0 10px 0; }
li .block {
position: absolute;
margin: 0 0 0 70px;
background: #ddd;
display: none;
}
JavaScript:
$("ul li").hover(function() {
$(this).children(".block").stop().fadeIn();
}, function() {
$(this).children(".block").stop().fadeOut();
});
そのような影響を防ぐ方法は?