Skip to content

Commit

Permalink
Fix repeating calls to requestAnimationFrame
Browse files Browse the repository at this point in the history
Once dirty is true, `dirtyChecking` would be called every animation frame, instead of just once.
Also added `resize-sensor-inner` class to innermost `div` inside `resize-sensor` element so it can be addressed or blacklisted by other scripts.
  • Loading branch information
olivierkorner authored Sep 9, 2016
1 parent 812e3bb commit b2c9cec
Showing 1 changed file with 6 additions and 8 deletions.
14 changes: 6 additions & 8 deletions src/ResizeSensor.js
Original file line number Diff line number Diff line change
Expand Up @@ -124,10 +124,10 @@
element.resizeSensor.style.cssText = style;
element.resizeSensor.innerHTML =
'<div class="resize-sensor-expand" style="' + style + '">' +
'<div style="' + styleChild + '"></div>' +
'<div style="' + styleChild + '" class="resize-sensor-inner"></div>' +
'</div>' +
'<div class="resize-sensor-shrink" style="' + style + '">' +
'<div style="' + styleChild + ' width: 200%; height: 200%"></div>' +
'<div style="' + styleChild + ' width: 200%; height: 200%" class="resize-sensor-inner"></div>' +
'</div>';
element.appendChild(element.resizeSensor);

Expand All @@ -154,14 +154,10 @@
var dirty = false;

var dirtyChecking = function() {
if (!element.resizedAttached) return;

if (dirty) {
if (dirty && element.resizedAttached) {
element.resizedAttached.call();
dirty = false;
}

requestAnimationFrame(dirtyChecking);
dirty = false;
};

requestAnimationFrame(dirtyChecking);
Expand All @@ -174,6 +170,8 @@

lastWidth = cachedWidth;
lastHeight = cachedHeight;

requestAnimationFrame(dirtyChecking);
}
reset();
};
Expand Down

0 comments on commit b2c9cec

Please sign in to comment.