From e5630deb16beaf9428b022b470e5851ea2dcda89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9A=AE=E5=B0=98?= Date: Mon, 3 Dec 2018 21:18:51 +0800 Subject: [PATCH] feat(Overylay): fix overlay position error --- src/overlay/utils/position.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/overlay/utils/position.js b/src/overlay/utils/position.js index 1bc1a12865..3cbec1d3f5 100644 --- a/src/overlay/utils/position.js +++ b/src/overlay/utils/position.js @@ -131,7 +131,7 @@ export default class Position { offset.top += parseFloat(dom.getStyle(parent, 'border-top-width'), 10); offset.left += parseFloat(dom.getStyle(parent, 'border-left-width'), 10); - + offset.offsetParent = parent; return offset; } @@ -288,9 +288,10 @@ export default class Position { } // transfer {left,top} equaly to {right,top} - const {width: viewportWidth} = _getViewportSize(); + const pinElementParentOffset = this._getParentOffset(pinElement); + const {width: offsetParentWidth} = _getElementRect(pinElementParentOffset.offsetParent); const {width} = _getElementRect(pinElement); - const right = viewportWidth - (left + width); + const right = offsetParentWidth - (left + width); dom.setStyle(pinElement, { left: "auto", right: `${right + offset[0]}px`,