2016-04-27 23 views
0

私は、コードを持っているのを聞きました。animationEndイベントハンドライベントは2回

それは仕事をしますが、ウェブサイトが初めて起動されたときにも起動されます。

防止策はありますか?アニメーション終了イベントが2回目に聞こえるときにのみ、このアラートをトリガーする方法はありますか?

PS私はwow.jsを使用していますので、特定のページポイントまでスクロールした後に#sectionNameオブジェクトがスライドインしてから、警告を表示します。

+1

いいえ、選択した要素ですべてのアニメーションが終了すると、イベントが呼び出されます。この問題を回避するには、最初のスライドアニメーションが完了するまでこのイベントハンドラの追加を遅らせることができます。 –

+0

しかし、#sectionNameのアニメーションは1つしかなく、この要素の「スライドイン」ですが、ページを起動すると警告が表示されます。 – Ancinek

答えて

0

それをシンプルにしてみてください。あなたがアニメーションをキャッチするwow.js callbackを使用することができます

Var firstTime = true 
$('#sectionName').on('animationend webkitAnimationEnd oAnimationEnd', function() { 
    if(firstTime){ 
     firstTime = false; 
     return; 
    } 
    alert("Hello"); 
}); 
+0

よくわかりません。私はそれについて考えることさえしなかったのは簡単なことでした。 – Ancinek

0

が開始されます。

var sections = ['sectionName', 'sectionName2'] 
var wow = new WOW({ 
    callback: function(box) { 
    var $box = $(box); 
    if (sections.indexOf($box.attr('id')) >= 0) { 
     $box.on('animationend webkitAnimationEnd oAnimationEnd', function() { 
      alert("Hello"); 
     });  
    } 
    } 
}).init(); 

は[https://jsfiddle.net/6g01kLsh/]

0

のみanimationendwebkitAnimationEndについて試験しました。

var isWebkitAnim = window.onanimationend === undefined && window.onwebkitanimationend !== undefined 
var animationEndEvent = isWebkitAnim ? 'webkitAnimationEnd' : 'animationend' 

$('#sectionName').on(animationEndEvent, function() { 
    alert("Hello") 
})