У меня есть вопрос относительно обратного вызова функции .animate. Я пытаюсь, чтобы элемент исчезал, когда курсор покидает родителя. После исчезновения элемент должен быть скрыт, чтобы вы не могли нависнуть над ним с помощью курсора или щелкнуть его. Однако функция обратного вызова, которая скрывает элемент, вызывается в начале анимации, а не в конце. Я много пробовал, но ничего не получилось. Я могу опубликовать весь свой код (это не так много, просто небольшая домашняя страница с некоторыми ссылками, которые я сделал для себя), если это необходимо.jQuery. Активировать обратный вызов при запуске анимации
var fadeIn = {opacity: "1"};
var fadeOut = {opacity: "0"};
$(".link-main").hover(function(){
$(this).children(".link-sub").css("z-index", "10").show().animate(fadeIn, 100);
}, function(){
// The animation.
$(this).children(".link-sub").animate(fadeOut, 100, "swing", function(){
$(this).hide();
});
});
Кроме того, просто использование .fadeIn и .fadeOut не работает по какой-либо причине. Элементы просто исчезнут мгновенно.
Заранее благодарен!
Edit: это то, что я прямо сейчас jsfiddle.net/rqfcZ
Вы установили [$ .fx.off] (http://api.jquery.com/jQuery.fx.off/) на 'true'? –
Повторяющийся вопрос см. Ниже stackoverflow вопрос. http://stackoverflow.com/questions/5397260/animates-callback-function-complete-executed-at-start – Akki619
Мне удалось сделать подобные вещи, объединив анимации, чтобы каждая анимация выполнялась в обратном вызове предыдущего. Вы должны просто использовать обратный вызов для animate() вместо on hover()? –