2015-06-07 4 views
1

Итак, у меня есть div, который затухает на мыши, входя в и вниз на mouseleave, который отлично работает.jQuery mouseenter и mouseleave fadeTo предотвратить замедленное повторение

$('.myDiv').mouseenter(function(){ 
$(this).fadeTo('slow', 1); 
}); 

$('.myDiv').mouseleave(function(){ 
$(this).fadeTo('slow', 0.4); 
}); 

См. jsfiddle.

Однако, если вы быстро переместите мышь и снова и снова несколько раз, div будет «мигать» по мере продолжения анимации. Есть ли способ остановить это?

Я пробовал обратные вызовы, но не получил желаемого эффекта.

Любые предложения?

+1

https://jsfiddle.net/1Lrcubwp/ –

ответ

2

Try:

$('.myDiv').mouseenter(function(){ 
    $(this).stop(); 
    $(this).fadeTo('slow', 1); 

}); 
$('.myDiv').mouseleave(function(){ 
    $(this).stop(); 
    $(this).fadeTo('slow', 0.4); 
}); 

https://jsfiddle.net/1Lrcubwp/

2

Лучший способ заключается в использовании CSS. Javascript не должен использоваться для такой анимации, так как это сделает ваш сайт медленным. См. Мой пример ниже.

.fade { 
 
     background-color: red; 
 
    width: 200px; 
 
    height: 200px; 
 
    opacity: 0.4; 
 
    filter: alpha(opacity=40); /* For IE8 and earlier */ 
 
    transition: opacity .25s ease-in-out; 
 
    -moz-transition: opacity .25s ease-in-out; 
 
    -webkit-transition: opacity .25s ease-in-out; 
 
    cursor: pointer; 
 
    } 
 

 
    .fade:hover { 
 
     opacity: 1; 
 
     }
<div class='fade'></div>

+0

Хотя использование CSS является предпочтительным вариантом для меня в целом, и это хороший ответ, технически сфера вопрос был Javascript или JQuery основанный таким образом, отметил другой ответ как правильный, если кто-то смотрит на это в будущем. Тем не менее, я, вероятно, буду использовать эту версию! – Truvia

+0

Кроме того, для тех, кто ищет это, если вы хотите использовать CSS для изменения непрозрачности другого элемента при зависании над исходным div, объедините этот метод с [этим ответом здесь] (http://stackoverflow.com/questions/6910049/на-CSS-парения-события может-я-изменение-другая-дивы-укладка) – Truvia