From b2c9cec873d0ed837ac3aa060e7a396fe7363ee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20K=C3=B6rner?= Date: Fri, 9 Sep 2016 11:24:45 +0200 Subject: [PATCH] Fix repeating calls to requestAnimationFrame 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. --- src/ResizeSensor.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/ResizeSensor.js b/src/ResizeSensor.js index af38c6e..c014a90 100755 --- a/src/ResizeSensor.js +++ b/src/ResizeSensor.js @@ -124,10 +124,10 @@ element.resizeSensor.style.cssText = style; element.resizeSensor.innerHTML = '
' + - '
' + + '
' + '
' + '
' + - '
' + + '
' + '
'; element.appendChild(element.resizeSensor); @@ -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); @@ -174,6 +170,8 @@ lastWidth = cachedWidth; lastHeight = cachedHeight; + + requestAnimationFrame(dirtyChecking); } reset(); };