0

すべてのアニメーションが完了したら、要素から不透明度スタイルを完全に削除する必要があります。
http://jsfiddle.net/SthJy/1/

設定css('opacity', '')してみremoveAttr('style')ましたが、効果はありませんでしたが、inilneスタイルはまだ残っています。誰かがこれを手伝ってくれませんか?

4

2 に答える 2

2

delayキューに入れられないため、css()またはremoveAttr()キューに入れられないため、機能しません。delay()ドキュメントで詳細を読む

css()最終的なアニメーションを使用するかremoveAttr()、完全なcallack内で使用する必要があります

 $("#helpCloud").animate({opacity: 1}, 200)
                .delay(2200)
                 .animate({  opacity: 0 }, 200, function(){
                      setTimeout(function(){
                          $(this).removeAttr('style');
                      }, 300);
                 });

cssでは要素のデフォルトの不透明度がゼロであるため、何が表示されるかわからない

API参照:http://api.jquery.com/delay

于 2013-01-12T19:27:14.830 に答える
2

.queue()を使用すると、アニメーションとの同期を維持できます。

$("#helpCloud").animate({ opacity: 1 }, 200)
            .delay(2200)
            .animate({ opacity: 0 }, 200)
            .delay(300)
            .queue(function(next) {
              $(this).css('opacity', '');
              alert('happend only after .delay is over');
              next()
             })

ライブデモ: http: //jsfiddle.net/SthJy/3/

同じ結果を得る別の方法は、.dalay(300、function(){});でコールバックを使用することです。

$("#helpCloud").animate({ opacity: 1 }, 200)
                .delay(2200)
                .animate({ opacity: 0 }, 200)
                .delay(300, function() {
                  $(this).css('opacity', '');
                  alert('happend only after .delay is over');
                });

ライブデモ: http: //jsfiddle.net/SthJy/4/

于 2013-01-12T19:31:59.593 に答える