Skip to content
This repository was archived by the owner on May 7, 2025. It is now read-only.

Commit b2c9cec

Browse files
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.
1 parent 812e3bb commit b2c9cec

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

src/ResizeSensor.js

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,10 @@
124124
element.resizeSensor.style.cssText = style;
125125
element.resizeSensor.innerHTML =
126126
'<div class="resize-sensor-expand" style="' + style + '">' +
127-
'<div style="' + styleChild + '"></div>' +
127+
'<div style="' + styleChild + '" class="resize-sensor-inner"></div>' +
128128
'</div>' +
129129
'<div class="resize-sensor-shrink" style="' + style + '">' +
130-
'<div style="' + styleChild + ' width: 200%; height: 200%"></div>' +
130+
'<div style="' + styleChild + ' width: 200%; height: 200%" class="resize-sensor-inner"></div>' +
131131
'</div>';
132132
element.appendChild(element.resizeSensor);
133133

@@ -154,14 +154,10 @@
154154
var dirty = false;
155155

156156
var dirtyChecking = function() {
157-
if (!element.resizedAttached) return;
158-
159-
if (dirty) {
157+
if (dirty && element.resizedAttached) {
160158
element.resizedAttached.call();
161-
dirty = false;
162159
}
163-
164-
requestAnimationFrame(dirtyChecking);
160+
dirty = false;
165161
};
166162

167163
requestAnimationFrame(dirtyChecking);
@@ -174,6 +170,8 @@
174170

175171
lastWidth = cachedWidth;
176172
lastHeight = cachedHeight;
173+
174+
requestAnimationFrame(dirtyChecking);
177175
}
178176
reset();
179177
};

0 commit comments

Comments
 (0)