0

新しい写真を表示する前に現在の写真をフェードアウトする簡単なスライドショーがあります。FFとIEでうまく機能しますが、Chromeでは効果が非常に遅くなります...

Chromeの遅延は、拡大縮小された画像にのみ表示されることに気付きました

再現するコードは次のとおりです。

    this.oldimg  = this.img;
    this.img = new Image(); 
    $(this.img).css({width: '90%', height: '90%'});
    $(this.img).attr("src", "//file.jpg");
    $("body").prepend(this.img);
    if(this.oldimg) $(this.oldimg).fadeTo(600, 0, function() { $(this).remove();  });

ここでの作業デモ:http://jsfiddle.net/f3tta/18/embedded/result/

(注:コメントは、ここでブラウザーのキャッシュを回避する前のデモを参照して行われました)

再現できますか?完全に拡大縮小された画像を提供することなく、遅延を回避するためにどのような解決策が必要ですか?

4

1 に答える 1

2

さて、誰かが同じ問題でここに来るなら、私は問題を回避するための解決策を見つけました:

if(this.oldimg) $(this.oldimg).delay(50).fadeTo(600, 0, function() { $(this).remove();

なぜフェードアウトを少し遅らせると、クロームがほぼ正常に効果を発揮するのかわかりません。

于 2012-09-05T21:38:21.063 に答える