kamrify commited on
Commit
f898881
·
1 Parent(s): bcf9be5

Fix - Position issue of element on resize

Browse files
Files changed (1) hide show
  1. assets/scripts/src/overlay.js +13 -0
assets/scripts/src/overlay.js CHANGED
@@ -11,6 +11,7 @@ export default class Overlay {
11
  this.positionToHighlight = new Position({});
12
  this.highlightedPosition = new Position({});
13
  this.redrawAnimation = null;
 
14
 
15
  this.draw = this.draw.bind(this);
16
 
@@ -54,6 +55,10 @@ export default class Overlay {
54
  }
55
 
56
  clear() {
 
 
 
 
57
  this.document.body.removeChild(this.overlay);
58
  }
59
 
@@ -148,5 +153,13 @@ export default class Overlay {
148
  // cut out a chunk for the element to be visible out of it
149
  this.overlay.width = width || this.window.innerWidth;
150
  this.overlay.height = height || this.window.innerHeight;
 
 
 
 
 
 
 
 
151
  }
152
  }
 
11
  this.positionToHighlight = new Position({});
12
  this.highlightedPosition = new Position({});
13
  this.redrawAnimation = null;
14
+ this.highlightedElement = null;
15
 
16
  this.draw = this.draw.bind(this);
17
 
 
55
  }
56
 
57
  clear() {
58
+ // Cancel the existing animation frame if any
59
+ // remove the highlighted element and remove the canvas
60
+ this.window.cancelAnimationFrame(this.redrawAnimation);
61
+ this.highlightedElement = null;
62
  this.document.body.removeChild(this.overlay);
63
  }
64
 
 
153
  // cut out a chunk for the element to be visible out of it
154
  this.overlay.width = width || this.window.innerWidth;
155
  this.overlay.height = height || this.window.innerHeight;
156
+
157
+ // If the highlighted element was there Cancel the
158
+ // existing animation frame if any and highlight it again
159
+ // as its position might have been changed
160
+ if (this.highlightedElement) {
161
+ this.window.cancelAnimationFrame(this.redrawAnimation);
162
+ this.highlight(this.highlightedElement);
163
+ }
164
  }
165
  }