2
0
mirror of https://github.com/tenrok/vue-select.git synced 2026-06-04 06:32:23 +03:00
Files
vue-select/src/directives/appendToBody.js
T
2021-08-01 12:30:50 -07:00

35 lines
833 B
JavaScript

export default {
inserted(el, bindings, { context }) {
if (context.appendToBody) {
const {
height,
top,
left,
width,
} = context.$refs.toggle.getBoundingClientRect()
let scrollX = window.scrollX || window.pageXOffset
let scrollY = window.scrollY || window.pageYOffset
el.unbindPosition = context.calculatePosition(el, context, {
width: width + 'px',
left: scrollX + left + 'px',
top: scrollY + top + height + 'px',
})
document.body.appendChild(el)
}
},
unbind(el, bindings, { context }) {
if (context.appendToBody) {
if (el.unbindPosition && typeof el.unbindPosition === 'function') {
el.unbindPosition()
}
if (el.parentNode) {
el.parentNode.removeChild(el)
}
}
},
}