1

私はこのコードが非常に不完全であることを知っていますが、それは今まで非常にうまく機能していたので、私はそれを維持しました。しかし、今は<li>が多すぎて、jsに手動で追加できません。これは、ワードプレス上にあり、カテゴリページに依存するため、<li>の数は毎回変化します。

私の質問は; そのアニメーションを保持し、手動で追加しなくても、未定義の数の<li>で動作させるにはどうすればよいですか?そして、cssoverflow-y:hiddenを使用せずにスクロールバーのスクロールを停止する方法はありますか?!

デモはこちら:http: //jsfiddle.net/NdRDh/

どうもありがとうございます!あなたが私を助けてくれることを願っています!!

トム

4

5 に答える 5

4

私はお勧めします:

$(document).ready(
    function() {
        $('li').each(
            function(i) {
                $(this)
                    .delay(400)
                    .animate(
                        {
                            'top' : '10px'
                        }, 1500 + (500*i));
            });
    });​

JS フィドルのデモ

ああ、すべての要素idに対して同じことを繰り返していることに注意してください。これは次のように無効な HTML です。li

id=名前 [CS]

この属性は、要素に名前を割り当てます。この名前はドキュメント内で一意である必要があります。

(引用: http://www.w3.org/TR/html401/struct/global.html#h-7.5.2 )

参考文献:

于 2012-07-09T21:55:03.883 に答える
3
$('li').each(function(i) {
      $(this).delay(400).animate({'top': '10px'}, (500*i)+1000);
});

フィドルの例: http://jsfiddle.net/NdRDh/6/

補足として、同じIDを持つ複数の要素を持つことはできません

于 2012-07-09T21:53:44.380 に答える
1

each()ここに示すように、を使用できます: http://jsfiddle.net/Skooljester/NdRDh/1/

于 2012-07-09T21:53:44.840 に答える
1

ID とクラスが入れ替わっています。クラスとして 'common' を指定し、それらのクラス名を ID として指定すると、それらすべてを選択して animate を呼び出すことができます:

 $('li.common').animate(...);
于 2012-07-09T21:54:23.723 に答える
0

これを試して:

$("li").each(function(index) {
    $(this).delay(400).animate({'top' : '10px'}), 1000 + 500 * index);
});
于 2012-07-09T21:55:35.077 に答える