Jquery stop fadeTo эффект - PullRequest
       1

Jquery stop fadeTo эффект

2 голосов
/ 21 сентября 2011

http://jsfiddle.net/sJFLq/1/

Мне нужен эффект следа мыши, когда вы наводите курсор вверх или вниз по элементам div. Но если вы наведите мышь слишком быстро несколько раз, а затем остановитесь, эффект будет повторяться сам по себе.

Как я могу решить это? я думаю, что мне нужна какая-то вещь из очереди, например, с опцией animate, но для функции fadeTo. есть идеи?

Ответы [ 3 ]

5 голосов
/ 21 сентября 2011

Вы можете использовать метод .stop, чтобы остановить предыдущую анимацию.Если вы передадите true в качестве аргумента, он также очистит анимации, поставленные в очередь.

Если я правильно понял, что вы ищете, тогда вам нужно следующее (вы сказали, что хотите "след мыши », что, как я понимаю, означает, что вы не хотите, чтобы предыдущая анимация прекратилась, как только мышь покидает этот элемент, поэтому только один вызов .stop):

$(".test").mouseover(function(e){
    $(this).stop(true).fadeTo(200,1);
}).mouseout(function(e){
    $(this).fadeTo(200,0.3);
});

Вы можете видеть, что здесь работает .

4 голосов
/ 21 сентября 2011

Точно так, как вы описали это в заголовке:)

$(".test").mouseover(function(e){
    $(this).stop().fadeTo(200,1);
}).mouseout(function(e){
    $(this).stop().fadeTo(200,0.3);
});
2 голосов
/ 21 сентября 2011

Добавить .stop() для прекращения предыдущей анимации: http://jsfiddle.net/sJFLq/5/

$(".test").mouseover(function(e){
    $(this).stop(true, true).fadeTo(200,1);
}).mouseout(function(e){
    $(this).stop(true, true).fadeTo(200,0.3);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...