1

lia要素で画像をスライドさせるアニメーションを遅らせたい。私は、カウンター(i)を使用してすべてのli要素を調べ、アニメーションでタイムアウトを設定して、1000 + i*50を実行できると考えました。

残念ながら、最後のli要素のみがアニメーション化されます。何故ですか?

li = $('nav ul li').get();
lic = li.length;

$('nav ul li a .icon').hide();

t = [];
for (i = 0; i < li.length; i++) {
    var obj = $('nav ul li')[i];

    t[i] = setTimeout(function() {
        $(obj).children('a').children('.icon').slideDown();
    }, 1000 + i * 50);

    delete obj;
}
4

2 に答える 2

3

これで問題ありません。

jsBin デモ

$('nav ul li a .icon').hide();

$('nav ul li').each(function( i ){       
    $(this).find('.icon').delay(i*300).slideDown();    
});
于 2012-06-27T21:24:38.427 に答える
0

これを試してみてください。これは完全なコードではなく、テストもされていません。ロジックはこちらからお借りします。

$('nav ul li').each(function {
    $(this).find("a>.icon").hide();
    t[i] = setTimeout(function() {
        $(this).find("a>.icon").slideDown();
    }, 1000 + i * 50);
});
于 2012-06-27T21:29:38.533 に答える