Как остановить непрерывный цикл jQuery fade in fade out/fadeto?



Я хотел бы, чтобы мой логотип стал невидимым через 5 секунд, что я смог сделать. Я также хочу, чтобы логотип снова появлялся, когда мышь находится над моим заголовком div, а затем снова исчезал, если мышь перемещается с заголовка div. Проблема в том, что после наведения мыши на заголовок div, а затем удаления его, он исчезает непрерывно в течение 3 раз, почти как эффект мигания. Как я могу предотвратить это?



Я попытался поместить свой сценарий в тело и в голову, чтобы посмотрим, будет ли какая-то разница без успеха. Я также попытался поместить функции в отдельные теги скрипта...



<script type="text/javascript">
$(document).ready(function () {
$('#logo').delay(5000).fadeTo( 5000, 0 );
});
</script>

<script type="text/javascript">
function showLogo()
{
$('#logo').fadeTo( 2500, 1 );
}
</script>

<script type="text/javascript">
function hideLogo() {
$('#logo').delay(2500).fadeTo( 2500, 0 );
}
</script>


Это HTML:



<header id="header" onmouseover="showLogo()" onmouseout="hideLogo()">
<div id="logo">
<img src="images/logo.png">
</div>


Пожалуйста, помогите! Спасибо!

702   2  

2 ответов:

Вы можете использовать stop() Метод:

$('#header').hover(function(){
    $('#logo').stop().fadeToggle(2500);
});

Мне повезло со следующим:

$(document).ready(function () {
    $('#logo').delay(5000).fadeTo( 5000, 0 );
    $('#header').mouseenter(function(e){showLogo();});
    $('#header').mouseleave(function(e){hideLogo();});
});

Вместо подключения обработчиков в теге заголовка.

Comments

    Ничего не найдено.