因此,我正在尝试类似的操作,将鼠标悬停在文本上方,然后出现在文本旁边:
$('.lang1').mouseenter(function() {
$('.lang1 span').fadeTo('fast', 1);
});
$('.lang1').mouseleave(function() {
$('.lang1 span').fadeTo('fast', 0);
});
但是,一旦我将鼠标移到它上面,它仍然会出现,非常微弱,但可见。它完全可以按预期工作,但是它并不会完全失去它的不透明度,您必须不断地将鼠标悬停并移开它才能完全失去它的不透明度。
有人有建议吗?
CSS:
span {
opacity: 0;
}
HTML:
<li class="lang1">HTML <span>Pretty good at</span></li>
最佳答案
我只需要使用fadeIn('fast')和fadeOut('fast')来实现渐变效果,然后使用回调来隐藏元素。像这样:
$('.lang1').mouseleave(function() {
$('.lang1 span').fadeOut('fast', function() { $(this).hide(); });
});
我认为更简单的选择是将CSS更改为
display:none;
,并在鼠标事件触发$ ('.lang1 span').fadeOut('fast');
时让jQuery处理不透明度