我正在制作一些能够逐渐淡出一系列文本的东西。
到目前为止,这是我的工作:http://jsfiddle.net/9j7U6/
我正在淡入淡出文本,但是当我看到渲染时,时间关闭了。
$("#wantPlaceholder").fadeOut().html(wants[i]).fadeIn(2000).delay(3000);
这样做的正确方法是什么?
答案 0 :(得分:4)
使用回调。动画完成后将调用回调。以下代码淡出元素。当它完全淡出时,HTML被修改,然后再次淡入。
$("#wantPlaceholder").fadeOut(1000, function(){
$(this).html(wants[i]);
$(this).fadeIn(2000);
});
编辑:好了,循环可以完成something like this:
(function myLoop(items, index) {
index = (items.hasOwnProperty(index) ? index : 0);
$("#wantPlaceholder").delay(3000).fadeOut(1000, function () {
$(this).html(items[index]);
$(this).fadeIn(1000, function () {
myLoop(items, index + 1);
});
});
}(wants, 0));
答案 1 :(得分:1)
首先需要在fadeOut()处理程序
中更改文本function rotateWants() {
var i = 0;
var wantsLength = wants.length;
function fade() {
$("#wantPlaceholder").delay(5000).fadeOut(function () {
$(this).html(wants[i]);
i++;
if (i >= wantsLength) {
i = 0
};
}).fadeIn(2000, fade);
}
fade();
}
演示:Fiddle