我试图淡化页面上的一些元素,用AJAX获取新元素,然后淡入新的元素。淡入淡出很好,但淡出不会起作用。我尝试使用fadeOut,因为fadeIn运行良好,但是淡出效果根本不起作用 - 元素只是消失了。我现在正试图为不透明度变化设置动画。它适用于淡入。这是代码:
$(document).ready(function() {
setTimeout("getTestimonial()", 10000);
});
function getTestimonial() {
var counter = $('#products #cart-widget .counter').html();
$('#products #cart-widget p > span').each(function(index) {
if($(this).is('.counter')) {
} else {
$(this).animate({opacity: 0}, 5000, function(){});
}
});
$.get("testimonials_include.php5", {'counter':counter}, function(data) {
$('#products #cart-widget p').replaceWith(data);
$('#products #cart-widget p').children().css("opacity",0);
$('#products #cart-widget p > span').each(function(index) {
if($(this).is('.counter')) {
} else {
$(this).animate({opacity: 1}, 5000, function(){});
}
});
});
setTimeout("getTestimonial()", 10000);
}
请注意,新元素的不透明度默认为1,因此我必须在淡入效果起作用之前将它们设置为0。有没有人有任何想法,为什么它不会淡出?
答案 0 :(得分:1)
啊 - 问题是元素在淡入淡出完成之前被交换了。我把整个AJAX函数放在animate方法的完成函数中,嘿presto!