Skip to content

Commit

Permalink
fix(events): start and end events capture bubbles
Browse files Browse the repository at this point in the history
event-listeners should only act on start/end
animation events from target element.
  • Loading branch information
Ullfis authored and zewa666 committed Aug 16, 2017
1 parent 163f430 commit bb85e90
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion src/animator.js
Expand Up @@ -258,6 +258,9 @@ export class CssAnimator {
let animStart; let animStart;
let animHasStarted = false; let animHasStarted = false;
this._addMultipleEventListener(element, 'webkitAnimationStart animationstart', animStart = (evAnimStart) => { this._addMultipleEventListener(element, 'webkitAnimationStart animationstart', animStart = (evAnimStart) => {
if (evAnimStart.target !== element) {
return;
}
animHasStarted = true; animHasStarted = true;
this.isAnimating = true; this.isAnimating = true;


Expand All @@ -275,6 +278,9 @@ export class CssAnimator {
if (!animHasStarted) { if (!animHasStarted) {
return; return;
} }
if (evAnimEnd.target !== element) {
return;
}


// Step 3.1.0: Stop event propagation, bubbling will otherwise prevent parent animation // Step 3.1.0: Stop event propagation, bubbling will otherwise prevent parent animation
evAnimEnd.stopPropagation(); evAnimEnd.stopPropagation();
Expand Down Expand Up @@ -388,6 +394,9 @@ export class CssAnimator {
let animStart; let animStart;
let animHasStarted = false; let animHasStarted = false;
this._addMultipleEventListener(element, 'webkitAnimationStart animationstart', animStart = (evAnimStart) => { this._addMultipleEventListener(element, 'webkitAnimationStart animationstart', animStart = (evAnimStart) => {
if (evAnimStart.target !== element) {
return;
}
animHasStarted = true; animHasStarted = true;
this.isAnimating = true; this.isAnimating = true;


Expand All @@ -407,6 +416,9 @@ export class CssAnimator {
if (! animHasStarted) { if (! animHasStarted) {
return; return;
} }
if (evAnimEnd.target !== element) {
return;
}


// Step 3.1.0: Stop event propagation, bubbling will otherwise prevent parent animation // Step 3.1.0: Stop event propagation, bubbling will otherwise prevent parent animation
evAnimEnd.stopPropagation(); evAnimEnd.stopPropagation();
Expand Down Expand Up @@ -467,6 +479,9 @@ export class CssAnimator {
let animStart; let animStart;
let animHasStarted = false; let animHasStarted = false;
this._addMultipleEventListener(element, 'webkitAnimationStart animationstart', animStart = (evAnimStart) => { this._addMultipleEventListener(element, 'webkitAnimationStart animationstart', animStart = (evAnimStart) => {
if (evAnimStart.target !== element) {
return;
}
animHasStarted = true; animHasStarted = true;
this.isAnimating = true; this.isAnimating = true;


Expand All @@ -486,7 +501,10 @@ export class CssAnimator {
if (! animHasStarted) { if (! animHasStarted) {
return; return;
} }

if (evAnimEnd.target !== element) {
return;
}

// Step 2.1.0: Stop event propagation, bubbling will otherwise prevent parent animation // Step 2.1.0: Stop event propagation, bubbling will otherwise prevent parent animation
evAnimEnd.stopPropagation(); evAnimEnd.stopPropagation();


Expand Down

0 comments on commit bb85e90

Please sign in to comment.