0

オーディオの時間位置に基づいてオブジェクトを表示 (アニメーション化) するオーディオ ファイルのリスナーに for ループをアタッチしています。それはすべてうまくいきます。問題は、Safari 5.1.5 では最初のオブジェクトのみがアニメーション化され、残りは表示される (画面に表示され、アニメーションは表示されない) ことです。誰かがこれを以前に見たことがあるかどうか、そして回避策があるかどうか疑問に思っていました。

function loadAudio() {

aud = document.getElementById("audio");
aud.src = xmlDoc.getElementsByTagName("cues")[0].getAttribute("audioURL");
aud.load();
aud.addEventListener("timeupdate", function(){
    for(var i = 0; i<cues.length; i++) {
    if(aud.currentTime >= cues[i].time && !cues[i].on) {
        q = cues[i].p;
        cues[i].on = true;
        //alert(q);
        $(q).css({opacity: 0.0, visibility: "visible"}).stop().animate({opacity: 1.0});

    }
}

});

}
4

1 に答える 1

0

オーディオとはまったく関係ありませんが、似たようなものを見たことがあります。最後の .css() 呼び出しを独自の setTimeout() に入れると、それが修正される場合があります。参照: Safari: DOM 経由で更新すると、絶対位置の DIV が移動しない

于 2012-08-13T11:32:54.263 に答える