|
|
-
- // Get the bounding client rect from an IntersectionObserver entry.
- // This is to work around a bug in Chrome: https://crbug.com/737228
-
- let hasBoundingRectBug;
-
- function getRectFromEntry(entry) {
- if (typeof hasBoundingRectBug !== 'boolean') {
- const boundingRect = entry.target.getBoundingClientRect();
- const observerRect = entry.boundingClientRect;
- hasBoundingRectBug = boundingRect.height !== observerRect.height ||
- boundingRect.top !== observerRect.top ||
- boundingRect.width !== observerRect.width ||
- boundingRect.bottom !== observerRect.bottom ||
- boundingRect.left !== observerRect.left ||
- boundingRect.right !== observerRect.right;
- }
- return hasBoundingRectBug ? entry.target.getBoundingClientRect() : entry.boundingClientRect;
- }
-
- export default getRectFromEntry;
|