API jQuery ".delay ()" полностью посвящен "очереди эффектов". Это на самом деле возвращается немедленно.
Единственный способ сделать это, если вы не анимируете изменения CSS, это с помощью setTimeout ().
Одна вещь, которая может сделать вещи более приятными, это встроить ваши CSS-изменения в массив:
var cssChanges = [
{ delay: 500, css: { backgroundColor: "green", fontSize: "32px" }},
{ delay: 1000, css: { backgroundColor: "blue", textDecoration: "underline" }},
{ delay: 750, css: { position: "relative", marginLeft: "5px" }}
];
Затем вы можете использовать одну процедуру для просмотра списка с нужными задержками:
function doChanges(cssChanges) {
var index = 0;
function effectChanges() {
$('whatever').css(cssChanges[index].css);
if (++index < cssChanges.length) {
setTimeout(doChanges, cssChanges[index].delay);
}
}
setTimeout(effectChanges, cssChanges[0].delay);
}
Вы можете превратить его в плагин, если хотите, хотя, если вы собираетесь это сделать, может быть, лучше выяснить, как заставить ваш плагин играть вместе с существующими средствами анимации в jQuery.