1
0
mirror of https://github.com/nolanlawson/pinafore synced 2024-12-13 10:48:19 +01:00
Pinafore-Web-Client-Frontend/routes/_utils/getRectFromEntry.js

19 lines
785 B
JavaScript
Raw Normal View History

// Get the bounding client rect from an IntersectionObserver entry.
// This is to work around a bug in Chrome: https://crbug.com/737228
2018-02-09 07:29:29 +01:00
let hasBoundingRectBug
2018-02-09 07:29:29 +01:00
export function getRectFromEntry (entry) {
if (typeof hasBoundingRectBug !== 'boolean') {
2018-02-09 07:29:29 +01:00
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 ||
2018-02-09 07:29:29 +01:00
boundingRect.right !== observerRect.right
}
2018-02-09 07:29:29 +01:00
return hasBoundingRectBug ? entry.target.getBoundingClientRect() : entry.boundingClientRect
}