Skip to content

Commit c820b72

Browse files
AlbertLuciantomarcosmoura
authored andcommitted
fix(MdSelect): adjust position when body has margin (#1551)
* adjust popper with body position * fix ci build error
1 parent ef0cd2f commit c820b72

File tree

2 files changed

+30
-16
lines changed

2 files changed

+30
-16
lines changed

docs/app/pages/Components/Menu/Menu.vue

+14-14
Original file line numberDiff line numberDiff line change
@@ -175,20 +175,20 @@
175175
]
176176
},
177177
events: {
178-
headings: ['Name', 'Description', 'Value'],
179-
props: [
180-
{
181-
name: 'md-opened',
182-
description: 'Triggered when menu opens',
183-
value: 'null'
184-
},
185-
{
186-
name: 'md-closed',
187-
description: 'Triggered when menu closes',
188-
value: 'null'
189-
}
190-
]
191-
}
178+
headings: ['Name', 'Description', 'Value'],
179+
props: [
180+
{
181+
name: 'md-opened',
182+
description: 'Triggered when menu opens',
183+
value: 'null'
184+
},
185+
{
186+
name: 'md-closed',
187+
description: 'Triggered when menu closes',
188+
value: 'null'
189+
}
190+
]
191+
}
192192
})
193193
}
194194
</script>

src/components/MdMenu/MdMenuContent.vue

+16-2
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,14 @@
181181
this.MdMenu.active = false
182182
},
183183
getOffsets () {
184+
const relativePosition = this.getBodyPosition()
185+
186+
const offsetX = this.MdMenu.offsetX || 0
187+
const offsetY = this.MdMenu.offsetY || 0
188+
184189
return {
185-
offsetX: this.MdMenu.offsetX || 0,
186-
offsetY: this.MdMenu.offsetY || 0
190+
offsetX: offsetX - relativePosition.x,
191+
offsetY: offsetY - relativePosition.y
187192
}
188193
},
189194
hasCustomOffsets () {
@@ -221,6 +226,15 @@
221226
max-width: ${this.MdMenu.instance.$el.offsetWidth}px
222227
`
223228
}
229+
},
230+
getBodyPosition() {
231+
const body = document.body
232+
const { top, left } = body.getBoundingClientRect()
233+
234+
const scrollLeft = window.pageXOffset !== undefined ? window.pageXOffset : body.scrollLeft
235+
const scrollTop = window.pageYOffset !== undefined ? window.pageYOffset : body.scrollTop
236+
237+
return { x: left + scrollLeft, y: top + scrollTop }
224238
}
225239
},
226240
mounted () {

0 commit comments

Comments
 (0)