.fadeTo('fast', 0) не работает должным образом? - JQuery

Итак, я пытаюсь что-то вроде, где вы наводите курсор на текст, и что-то появляется прямо рядом с ним:

$('.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>

2 ответа

Решение

Я бы просто использовал fadeIn('fast') и fadeOut('fast') для эффекта затухания, а затем использовал бы обратный вызов, чтобы скрыть элемент. Что-то вроде этого:

$('.lang1').mouseleave(function() {

        $('.lang1 span').fadeOut('fast', function() { $(this).hide(); });
});

Я думаю, что более простой альтернативой было бы изменить CSS на display:none; и пусть jQuery обрабатывает непрозрачность, когда у вас события мыши вызывают $('.lang1 span').fadeOut('fast');

Почему вы не используете fadeToggle?

$('.lang1').hover(function() {
  $(this).find("span").fadeToggle("fast");
});
Другие вопросы по тегам