Я думаю, вы ищете стоп (true, true) или stop (true, false) в зависимости от того, хотите ли вы, чтобы ваша анимация была плавной или нет ...
ссылка:
http://api.jquery.com/stop/
надеюсь, это поможет -ck
НОВЫЙ ОТВЕТ:
используйте это, чтобы скрыть:
$(this).next("div").stop(true).animate({opacity:0});
и это показать:
$(this).next("div").stop(true).animate({opacity:1});
вместо fadeIn () и fadeOut ()
jQuery запоминает начало, в котором находится непрозрачность, когда вы используете fadeIn / fadeOut, и, поскольку вы по существу останавливаете анимацию, вы «заклиниваете» fadeIn / fadeOut, чтобы перейти к остановленной непрозрачности
надеюсь, это поможет -ck
ОТВЕТ НА МОРА !! 1! :
, если вам также нужно фактическое "скрытие", например .display
установлено на 'none'
используйте это так:
$(this).next("div").stop(true).show().animate({opacity:1});
и
$(this).next("div").stop(true).animate({opacity:0}, function() { $(this).hide() });
если бы я делал это, я бы обернул это так:
$.fn.myFade = function(fadeIn) {
return this
.stop(true)
.show()
.fadeTo('fast', +!!fadeIn, function() { !fadeIn && $(this).hide(); });
};
$(this).next("div").myFade(true); // show
$(this).next("div").myFade(false); // hide
Полностью функционирующее демонстрационное действие Активировать: http://jsbin.com/isumiw
надеюсь, что это поможет LOL -ck