[Edge]。→、、
Web アニメーション Animation の再生を開始する予定時刻を倍精度浮動小数点値(¶オブジェクト)で示します。
mdn: 再生を開始する予定時刻を倍精度浮動小数点値で示します。
mdn: アニメーションの開始時間は、ターゲットの KeyframeEffect が再生を開始するようにスケジュールされているときの DocumentTimeline の時間値です。アニメーションの開始時間は、最初は未解決です(つまり、値がないため null です)。
Animation | Animation |
---|
現在の時間をミリ秒で表す浮動小数点数(¶オブジェクト)。または時間が設定されていない場合は null。
この値を読み取って、現在設定されている開始時刻を判断できます。この値を変更して、アニメーションを別の時間に開始することができます。
HTML:
<DIV id=IdTest style="width:1em">■</DIV> <BUTTON id=IdPlay>再生</BUTTON><BR> <BUTTON id=IdSet1>違うアニメーション設定1、play()</BUTTON> <BUTTON id=IdSet2>違うアニメーション設定2、startTime設定にてplay()</BUTTON> <BR> <SPAN id=IdLog></SPAN>
JavaScript:
KE=new KeyframeEffect( //アニメーション データの作成: IdTest, [ //ターゲット。 {transform:'translateX(150px)'} //X軸移動。 ] , {duration:1000, fill:'forwards'} //10秒掛けて、?。 ); Ani=new Animation(KE, document.timeline); //アニメーション作成。 //Ani.persist(); function JobPlay(){ //再生の処理: IdLog.innerHTML="startTime:"+Ani.startTime; //表示。 Ani.play(); } function JobSet1(){ //新しいアニメーション1の処理: KE=new KeyframeEffect( //アニメーション データの作成: IdTest, [ //ターゲット。 {transform:'translateX(200px)'} //X軸移動。 ] , {duration:1000, fill:'forwards'} //掛かる時間、?。 ); Ani=new Animation(KE, document.timeline); //アニメーション作成。 IdLog.innerHTML="startTime:"+Ani.startTime; //表示。 Ani.play(); //再生。 } function JobSet2(){ KE=new KeyframeEffect( //アニメーション データの作成: IdTest, [ //ターゲット。 {transform:'translateX(100px)'} //X軸移動。 ] , {duration:1000, fill:'forwards'} //掛かる時間、?。 ); Ani=new Animation(KE, document.timeline); //アニメーション作成。 IdLog.innerHTML="startTime:"+Ani.startTime; //表示。 D=D1=Ani.startTime; //=[object]:null if(D1==null)D=eve.timeStamp; Ani.play(); //再生。 D2=Ani.startTime; //=[object]:null Ani.startTime=D+3000; } IdPlay.onclick=JobPlay; //再生ボタンのイベント割り当て。 IdSet1.onclick=JobSet1; //新しいアニメーション1ボタンのイベント割り当て。 IdSet2.onclick=JobSet2; //新しいアニメーション2ボタンのイベント割り当て。 function Job(){ //タイマー監視処理: IdLog.innerHTML="startTime:"+Ani.startTime; //表示。 } setInterval(Job, 300); //タイマー監視。
play() 前も後も startTime はオブジェクトで null を示している。
startTime 設定は、イベントの timeStamp に時間数値を加算すれば、その時間後にアニメーションが開始されるようです。
結果的には、Ani.timeline、更なるは document.timeline に時間を加算することとなる。これは new Animation() のパラメーターによるものでしょう。