因此,我正在尝试类似的操作,将鼠标悬停在文本上方,然后出现在文本旁边:

$('.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处理不透明度

09-28 10:04