diff options
| author | Shpuld Shpuldson <shp@cock.li> | 2021-03-15 11:02:16 +0200 |
|---|---|---|
| committer | Shpuld Shpuldson <shp@cock.li> | 2021-03-15 11:02:16 +0200 |
| commit | 19fc7dda9e6d3513c8b57d7bae2bbe3c9ab87ced (patch) | |
| tree | fe55c1e48af9b7c16e9735c03dc0b7caa36c962d /src/components/popover/popover.js | |
| parent | ae159f6ad8d23ce0e3d2d765bf694f1a614c6df4 (diff) | |
| parent | 184364c7e06a982b48bbe6d913f02a73dd428aef (diff) | |
merge conflict, use v-slot:trigger, fix popover svg dimensions bug
Diffstat (limited to 'src/components/popover/popover.js')
| -rw-r--r-- | src/components/popover/popover.js | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/components/popover/popover.js b/src/components/popover/popover.js index 391d6422..bc6cd8e7 100644 --- a/src/components/popover/popover.js +++ b/src/components/popover/popover.js @@ -56,6 +56,9 @@ const Popover = { // Popover will be anchored around this element, trigger ref is the container, so // its children are what are inside the slot. Expect only one slot="trigger". const anchorEl = (this.$refs.trigger && this.$refs.trigger.children[0]) || this.$el + // SVGs don't have offsetWidth/Height, use fallback + const anchorWidth = anchorEl.offsetWidth || anchorEl.clientWidth + const anchorHeight = anchorEl.offsetHeight || anchorEl.clientHeight const screenBox = anchorEl.getBoundingClientRect() // Screen position of the origin point for popover const origin = { x: screenBox.left + screenBox.width * 0.5, y: screenBox.top } @@ -114,11 +117,11 @@ const Popover = { const yOffset = (this.offset && this.offset.y) || 0 const translateY = usingTop - ? -anchorEl.offsetHeight + vPadding - yOffset - content.offsetHeight + ? -anchorHeight + vPadding - yOffset - content.offsetHeight : yOffset const xOffset = (this.offset && this.offset.x) || 0 - const translateX = (anchorEl.offsetWidth * 0.5) - content.offsetWidth * 0.5 + horizOffset + xOffset + const translateX = anchorWidth * 0.5 - content.offsetWidth * 0.5 + horizOffset + xOffset // Note, separate translateX and translateY avoids blurry text on chromium, // single translate or translate3d resulted in blurry text. |
