1

<div class="circle">...</div>パーティクルエフェクトであるかのように、フェードインするときに最終的な位置にアニメートする予定の束があります。

私のJavaScriptには、次のものがあります。

$(document).ready(function(){

allCircles = $(".circle");

for (var i = 0; i < allCircles.length; i++) {
    console.log('hello: ' + allCircles[i].offsetTop + ' , ' + allCircles[i].offsetLeft);
}

allThings = $("*");
allThings.fadeIn(2500);

for (var i = 0; i < allCircles.length; i++) {
    console.log('hello: ' + allCircles[i].offsetTop + ' , ' + allCircles[i].offsetLeft);

offsetTopとoffsetLeft(cssファイルで定義)が最終的な位置です。forループを使用すると、fadeInの前に、offsetTop属性とoffsetLeft属性がすべてゼロになっていることに気付きました。フェードインイベントがトリガーされた後でのみ、cssオフセットプロパティが有効になります。フェードインをアニメーション化する前に、jQueryがすべてをゼロにするのはなぜですか?

4

1 に答える 1

4

フェードインする前に円がdisplay: noneCSSにある場合、位置のオフセットは取得されません。opacity: 0代わりに実行して使用することをお勧めし.animate({opacity: 1})ます。

于 2013-01-04T02:00:48.063 に答える