Итерируйте их, используя each()
и используйте setTimeout()
для каждого, умножая продолжительность анимации на текущий index
в каждом.
var posts = $(".post").hide();
// Holds reference to the index of the current iteration
// ------------------v
posts.each(function( index ) {
var $th = $(this);
setTimeout(function() {
$th.fadeIn('slow'); // Removed arguments.callee
}, index * 300);
});
Таким образом, каждый setTimeout()
будет иметь продолжительность n*600
, что даст вам нужный эффект.
Кстати, если вам не нужна переменная posts
для каких-либо других целей, вы можете устранитьэто и цепочка .each()
после .hide()
, как в $(".post").hide().each(func...)
EDIT: У меня была ошибка.Я использовал this
внутри setTimeout()
, который имеет другое значение.Отредактировано, чтобы передать правильное значение.
РЕДАКТИРОВАТЬ: Неправильно прочитать вопрос.Изменена длительность с setTimeout()
до 300
, чтобы частично перекрывать анимации.