2016-04-27 6 views
0

Ich habe einen Code:animationEnd Event-Handler - Ereignis gehört zweimal

$('#sectionName').on('animationend webkitAnimationEnd oAnimationEnd', function() { 
    alert("Hello"); 
}); 

, die gemeint ist, den Alarm auszulösen, wenn Animation von #sectionName endet.

Es macht seine Arbeit, aber es wird auch ausgelöst, wenn die Website zum ersten Mal gestartet wird.

Gibt es eine Möglichkeit, dies zu verhindern? Eine Möglichkeit, diese Warnung nur auszulösen, wenn das Animationsend-Ereignis zum zweiten Mal gehört wird?

PS Ich verwende wow.js, so dass das Objekt #sectionName eingefügt wird, nachdem zu einem bestimmten Seitenpunkt gescrollt wurde, und dann möchte ich die Warnung angezeigt werden.

+1

Nein, das Ereignis wird aufgerufen, nachdem die Animation für das ausgewählte Element beendet wurde. Um dies zu umgehen, können Sie den Ereignishandler hinzufügen, bis die erste Folienanimation abgeschlossen ist. –

+0

Aber es gibt nur eine Animation des #sectionName und das ist das "Einschieben" dieses Elements, aber die Warnung wird ausgelöst, wenn ich die Seite starte – Ancinek

Antwort

0

Probieren Sie es einfach:

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

Nun, ich weiß nicht, was ich sagen soll. Es war so einfach, dass ich gar nicht darüber nachdachte. – Ancinek

0

Sie wow.js verwenden können callback eine Animation zu fangen begonnen:

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

Nur für animationend und webkitAnimationEnd getestet.

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

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