Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions src/client/utils/dom.ts
Original file line number Diff line number Diff line change
Expand Up @@ -898,3 +898,7 @@ export function getAssociatedElement (el: HTMLElement): HTMLElement | null {

return el.control || el.htmlFor && nativeMethods.getElementById.call(doc, el.htmlFor);
}

export function getClientRectangle (el: HTMLElement): DOMRect {
return el.getClientRects()[0] ?? el.getBoundingClientRect();
}
2 changes: 1 addition & 1 deletion src/client/utils/position.ts
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ export function getElementRectangle (el) {
rectangle = getSelectChildRectangle(el);
else {
const elementOffset = getOffsetPosition(el);
const relativeRectangle = domUtils.isSVGElementOrChild(el) ? getSvgElementRelativeRectangle(el) : el.getBoundingClientRect();
const relativeRectangle = domUtils.isSVGElementOrChild(el) ? getSvgElementRelativeRectangle(el) : domUtils.getClientRectangle(el);

rectangle = {
height: relativeRectangle.height,
Expand Down
4 changes: 2 additions & 2 deletions src/client/utils/style.ts
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ export function getOffset (el) {
if (!el || domUtils.isWindow(el) || domUtils.isDocument(el))
return null;

let clientRect = el.getBoundingClientRect();
let clientRect = domUtils.getClientRectangle(el);

// NOTE: A detached node or documentElement.
const doc = el.ownerDocument;
Expand All @@ -338,7 +338,7 @@ export function getOffset (el) {
const scrollTop = win.pageYOffset || docElement.scrollTop || doc.body.scrollTop;
const scrollLeft = win.pageXOffset || docElement.scrollLeft || doc.body.scrollLeft;

clientRect = el.getBoundingClientRect();
clientRect = domUtils.getClientRectangle(el);

return {
top: clientRect.top + scrollTop - clientTop,
Expand Down