0

AnimationEnd コードが機能しないという問題があります。EventListener は起動していますが、AnimationEnd はリセットされていません。EventListener のこのコードに絞り込みました。
EventListener は、私がアラート ボックスを呼び出したように機能し、問題のコードは機能し、私が書いた別のページで公開されます。
ここでの問題の 1 つは、問題の行のコマンド ライン プロパティがわからないことです。
役立つ場合は、スクリプト全体を EventListener コードの下に配置しました。前述のとおり、問題は以下で強調表示されているこの小さなコードにあります。

s5.addEventListener( 'MSAnimationEnd', function( slideshow ){

これは正しくありませんが、単一のアニメーション呼び出しで機能します。ここで行っている最後の部分s5()と関係があると思われます。

  this.style.MSAnimationName="none";s5();
 }, false);

これがスクリプト全体です。私はこれを更新し、私の能力を最大限に発揮してデバッグしました。アラートを呼び出すことはできますが、関数を休ませることはできません。

 var count = 0;
function slide_show() {
 var  so=document.getElementById("s0");
  var slides = document.getElementsByClassName("s"),
i = slides.length-10;
if (count < i) 
{     
 slides[count].style.animation="slideshow cubic-bezier(0.9,0.9,0.9,0.9) 1s 1 ",
      slides[count].style.webkitAnimation="slideshow cubic-bezier(0.9,0.9,0.9,0.9)  1s 1 ",   
  slides[count].style.position="fixed",
 count++;

 setTimeout(slide_show, 1200);
so.style.visibility = "hidden",
so.style.position="absolute" ;
} 
else if(   so.style.visibility =="hidden" &&
so.style.position=="absolute")
{
 so.style.visibility = "visible",
so.style.position="static";

}
 }
  function cssAnimationEnd() 
  {
 var s = document.getElementsByClassName("s");
var  s5=document.getElementById("s5");
s5.addEventListener( 'webkitAnimationEnd', function(slideshow){alert("duck");}, false),
s5.addEventListener("animationend",function(slideshow){alert("duck");}, false);
 s5.addEventListener("MSAnimationEnd",function(slideshow){ alert("duck");},   false);
s5.addEventListener("oAnimationEnd",function(slideshow){**this.style.oAnimationName = "none";s5();**}, false);
}

アニメーションは滑らかに機能しますが、一度だけです。

上記の問題の行は、アニメーションのブラウザのデフォルトをリセットしません。ブラウザは、必要に応じて 1 回の実行またはサイクルでデフォルト設定されるため、アニメーションを呼び出した後はリセットする必要があります。私はこれを以前に経験したので、これを知っています。アラートボックスを呼び出すため、イベントリスナーが機能していることはわかっています。したがって、この問題は、要素 ID ではなくクラスを介してアニメーションを呼び出しているという事実に関係していると思われます。このため、アニメーションはデフォルトでクラス内の各画像に対して 1 回、15 回実行されます。そのため、問題のコード行を調整するか、ブラウザのアニメーションのデフォルトを別の方法でリセットする必要があります。最初のアイデアは実行可能だと思いますが、問題の診断ほどスクリプト行を書くのは得意ではありません。お願いします、誰かが持っている考えは大歓迎で、本当に必要とされています。私はさまざまな修正に取り組んでいますが、このコードはスムーズに機能し、問題には #!$$#! があります。オフなので、今はそれを修正することにさらに決心しています。ありがとう

4

0 に答える 0